From 1bfcaf248ed7c69bd2b2c20663007ebcfcc3fcf2 Mon Sep 17 00:00:00 2001 From: Johannes Riegler Date: Tue, 17 Jun 2025 16:53:10 +0200 Subject: [PATCH] Fix application not starting due to wrong usage of loggerContext --- .../com/latch/LengthSplittingAppender.java | 9 +------- .../java/com/latch/LoggingEventCloner.java | 22 +++++++++++++------ .../com/latch/LoggingEventClonerTest.java | 19 +++++----------- .../logging/LoggingJsonSplitterTest.java | 2 +- 4 files changed, 23 insertions(+), 29 deletions(-) diff --git a/platform-spring-bom/platform-spring-logging-server-config/src/main/java/com/latch/LengthSplittingAppender.java b/platform-spring-bom/platform-spring-logging-server-config/src/main/java/com/latch/LengthSplittingAppender.java index 48c196e..8bf5264 100644 --- a/platform-spring-bom/platform-spring-logging-server-config/src/main/java/com/latch/LengthSplittingAppender.java +++ b/platform-spring-bom/platform-spring-logging-server-config/src/main/java/com/latch/LengthSplittingAppender.java @@ -34,13 +34,6 @@ * SOFTWARE. */ public class LengthSplittingAppender extends SplittingAppenderBase { - private final LoggingEventCloner loggingEventCloner; - - public LengthSplittingAppender() { - super(); - LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); - this.loggingEventCloner = new LoggingEventCloner(loggerContext); - } private int maxLength; private String sequenceKey; @@ -76,7 +69,7 @@ public List split(ILoggingEvent event) { Map seqMDCPropertyMap = new HashMap<>(event.getMDCPropertyMap()); seqMDCPropertyMap.put(getSequenceKey(), Integer.toString(i)); - LoggingEvent clonedEvent = loggingEventCloner.clone(event, message, seqMDCPropertyMap); + LoggingEvent clonedEvent = LoggingEventCloner.clone(event, message, seqMDCPropertyMap); splitLogEvents.add(clonedEvent); } diff --git a/platform-spring-bom/platform-spring-logging-server-config/src/main/java/com/latch/LoggingEventCloner.java b/platform-spring-bom/platform-spring-logging-server-config/src/main/java/com/latch/LoggingEventCloner.java index 670bb5e..974a3b8 100644 --- a/platform-spring-bom/platform-spring-logging-server-config/src/main/java/com/latch/LoggingEventCloner.java +++ b/platform-spring-bom/platform-spring-logging-server-config/src/main/java/com/latch/LoggingEventCloner.java @@ -3,6 +3,7 @@ import ch.qos.logback.classic.LoggerContext; import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.classic.spi.LoggingEvent; +import org.slf4j.LoggerFactory; import org.slf4j.Marker; import java.util.List; @@ -32,20 +33,16 @@ * SOFTWARE. */ class LoggingEventCloner { - private final LoggerContext loggerContext; + private static LoggerContext loggerContext; - public LoggingEventCloner(LoggerContext loggerContext) { - this.loggerContext = loggerContext; - } - - public LoggingEvent clone(ILoggingEvent event, String message, Map mdcValueMap) { + public static LoggingEvent clone(ILoggingEvent event, String message, Map mdcValueMap) { LoggingEvent newEvent = new LoggingEvent(); newEvent.setLevel(event.getLevel()); newEvent.setLoggerName(event.getLoggerName()); newEvent.setTimeStamp(event.getTimeStamp()); newEvent.setLoggerContextRemoteView(event.getLoggerContextVO()); - newEvent.setLoggerContext(this.loggerContext); + newEvent.setLoggerContext(getLoggerContext()); newEvent.setThreadName(event.getThreadName()); newEvent.setMessage(message); newEvent.setMDCPropertyMap(mdcValueMap); @@ -61,4 +58,15 @@ public LoggingEvent clone(ILoggingEvent event, String message, Map mdcProperties = Map.of("key1", "value1", "key2", "value2"); - LoggingEvent clonedEvent = loggingEventCloner.clone(event, "", mdcProperties); + LoggingEvent clonedEvent = LoggingEventCloner.clone(event, "", mdcProperties); Assertions.assertNotNull(clonedEvent); Map clonedMDCProperties = clonedEvent.getMDCPropertyMap(); @@ -69,7 +61,7 @@ public void correctlyClonesMarker() { Marker marker = new BasicMarkerFactory().getMarker("TestMarker"); event.addMarker(marker); - LoggingEvent clonedEvent = loggingEventCloner.clone(event, "", Collections.emptyMap()); + LoggingEvent clonedEvent = LoggingEventCloner.clone(event, "", Collections.emptyMap()); Assertions.assertNotNull(clonedEvent); Assertions.assertEquals(marker.getName(), clonedEvent.getMarkerList().get(0).getName()); @@ -83,7 +75,7 @@ public void correctlyClonesCallerData() { }; event.setCallerData(callerData); - LoggingEvent clonedEvent = loggingEventCloner.clone(event, "", Collections.emptyMap()); + LoggingEvent clonedEvent = LoggingEventCloner.clone(event, "", Collections.emptyMap()); Assertions.assertTrue(clonedEvent.hasCallerData()); StackTraceElement[] clonedCallerData = clonedEvent.getCallerData(); @@ -93,6 +85,7 @@ public void correctlyClonesCallerData() { private LoggingEvent createLoggingEventWithContext() { LoggingEvent event = new LoggingEvent(); + LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); event.setLoggerContext(loggerContext); return event; } diff --git a/platform-spring-bom/platform-spring-logging-server-config/src/test/java/io/cloudflight/platform/spring/logging/LoggingJsonSplitterTest.java b/platform-spring-bom/platform-spring-logging-server-config/src/test/java/io/cloudflight/platform/spring/logging/LoggingJsonSplitterTest.java index 35b59d7..74db0cb 100644 --- a/platform-spring-bom/platform-spring-logging-server-config/src/test/java/io/cloudflight/platform/spring/logging/LoggingJsonSplitterTest.java +++ b/platform-spring-bom/platform-spring-logging-server-config/src/test/java/io/cloudflight/platform/spring/logging/LoggingJsonSplitterTest.java @@ -49,7 +49,7 @@ void logWithCloudbackConfig() { } @Test - void logLongMessageWithJsonSplitterFails() { + void logLongMessageWithJsonSplitterDoesNotFail() { Assertions.assertDoesNotThrow(() -> LOG.info(TEST_MARKER, "This is a long message. ".repeat(1000))); } }