From dbf64b09875fc93fcb4f6aea51dfff5deea05e87 Mon Sep 17 00:00:00 2001 From: Viktor Lofgren Date: Tue, 27 Feb 2024 13:39:24 +0100 Subject: [PATCH] (logs) Add the option for json logging --- .../nu/marginalia/service/server/Service.java | 5 ++++ code/common/service/resources/log4j2-json.xml | 28 +++++++++++++++++++ .../nu/marginalia/process/ProcessService.java | 6 ++++ 3 files changed, 39 insertions(+) create mode 100644 code/common/service/resources/log4j2-json.xml 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));