diff --git a/code/common/service/java/nu/marginalia/service/server/Service.java b/code/common/service/java/nu/marginalia/service/server/Service.java index ba076ae5..c959e269 100644 --- a/code/common/service/java/nu/marginalia/service/server/Service.java +++ b/code/common/service/java/nu/marginalia/service/server/Service.java @@ -90,6 +90,11 @@ public class Service { initialization.addCallback(() -> params.eventLog.logEvent("SVC-INIT", serviceName + ":" + config.node())); initialization.addCallback(() -> serviceRegistry.announceInstance(config.instanceUuid())); + Thread.setDefaultUncaughtExceptionHandler((t, e) -> { + logger.error("Uncaught exception", e); + request_counter_err.labels(serviceName, Integer.toString(node)).inc(); + }); + if (!initialization.isReady() && ! initialized ) { initialized = true; diff --git a/code/common/service/resources/log4j2-json.xml b/code/common/service/resources/log4j2-json.xml new file mode 100644 index 00000000..dd2fc6d2 --- /dev/null +++ b/code/common/service/resources/log4j2-json.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/code/execution/java/nu/marginalia/process/ProcessService.java b/code/execution/java/nu/marginalia/process/ProcessService.java index 848f0233..0d153c8f 100644 --- a/code/execution/java/nu/marginalia/process/ProcessService.java +++ b/code/execution/java/nu/marginalia/process/ProcessService.java @@ -94,6 +94,12 @@ public class ProcessService { else args.add("-da"); args.add("--enable-preview"); + + String loggingOpts = System.getProperty("log4j2.configurationFile"); + if (loggingOpts != null) { + args.add("-Dlog4j.configurationFile=" + loggingOpts); + } + args.addAll(processId.envOpts()); args.add(processId.mainClass); args.addAll(Arrays.asList(extraArgs));