From 8cc1e122863c861758c3ee574a6109a58563f15c Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Thu, 22 Jan 2026 20:24:17 -0800 Subject: [PATCH 1/2] GitHub Issue 796: JSON logging stopped after Tomcat/Spring update --- .../src/org/labkey/embedded/LabKeyServer.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/server/embedded/src/org/labkey/embedded/LabKeyServer.java b/server/embedded/src/org/labkey/embedded/LabKeyServer.java index 7e74ccc801..a33d08d487 100644 --- a/server/embedded/src/org/labkey/embedded/LabKeyServer.java +++ b/server/embedded/src/org/labkey/embedded/LabKeyServer.java @@ -92,6 +92,32 @@ public static void main(String[] args) application.setDefaultProperties(new HashMap<>() {{ + // GitHub Issue 796: JSON logging stopped after Tomcat/Spring update + // Propagate log4j configuration to Spring Boot config, which is necessary with Spring Boot 4.x + String log4JConfig = System.getProperty("log4j.configurationFile"); + if (log4JConfig != null) + { + String[] log4JConfigParts = log4JConfig.split(","); + if (log4JConfigParts.length > 0) + { + if ("log4j2.xml".equals(log4JConfigParts[0])) + { + // Assume this is the one packaged with our embedded build and on the classpath + put("logging.config", "classpath:log4j2.xml"); + } + else + { + put("logging.config", log4JConfigParts[0]); + } + if (log4JConfigParts.length == 2) + { + put("logging.log4j2.config.override", log4JConfigParts[1]); + } + else + throw new IllegalArgumentException("log4j.configurationFile must be in the form log4j2.xml[,secondaryFile]"); + } + } + put("server.tomcat.basedir", "."); put("server.tomcat.accesslog.directory", logHome); From 1373d1c7fa370e5d06207b02ce1b36be74a95595 Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Fri, 23 Jan 2026 15:40:38 -0800 Subject: [PATCH 2/2] Handle multiple supplemental files --- .../src/org/labkey/embedded/LabKeyServer.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/server/embedded/src/org/labkey/embedded/LabKeyServer.java b/server/embedded/src/org/labkey/embedded/LabKeyServer.java index a33d08d487..8de3d892b7 100644 --- a/server/embedded/src/org/labkey/embedded/LabKeyServer.java +++ b/server/embedded/src/org/labkey/embedded/LabKeyServer.java @@ -109,9 +109,17 @@ public static void main(String[] args) { put("logging.config", log4JConfigParts[0]); } - if (log4JConfigParts.length == 2) + if (log4JConfigParts.length > 1) { - put("logging.log4j2.config.override", log4JConfigParts[1]); + StringBuilder sb = new StringBuilder(); + String separator = ""; + for (int i = 1; i < log4JConfigParts.length; i++) + { + sb.append(separator); + separator = ","; + sb.append(log4JConfigParts[i]); + } + put("logging.log4j2.config.override", sb.toString()); } else throw new IllegalArgumentException("log4j.configurationFile must be in the form log4j2.xml[,secondaryFile]");