diff --git a/examples/log4j2-custom-format-example/src/main/resources/log4j2.xml b/examples/log4j2-custom-format-example/src/main/resources/log4j2.xml index f74109a..eb63f72 100644 --- a/examples/log4j2-custom-format-example/src/main/resources/log4j2.xml +++ b/examples/log4j2-custom-format-example/src/main/resources/log4j2.xml @@ -1,47 +1,50 @@ - + - 192.168.1.100 + + + + ${sys:log.dir:-logs} + ${APP_NAME} + ${LOG_HOME}/${APP_NAME}.log + + - - - + + + + ${CONSOLE_PATTERN_FORMAT} + - - - - - - - - + + + + ${JSON_PATTERN_FORMAT} + - + - - - - - - + - - - - + + + + - - + + diff --git a/pom.xml b/pom.xml index ef779fe..372d16f 100644 --- a/pom.xml +++ b/pom.xml @@ -57,7 +57,7 @@ 1.5.18 2.0.16 - 2.24.3 + 2.23.1 2.29.15 diff --git a/src/main/java/ai/traceroot/sdk/logger/log4j2/Log4j2TraceRootLogger.java b/src/main/java/ai/traceroot/sdk/logger/log4j2/Log4j2TraceRootLogger.java index 26c8fec..52408b6 100644 --- a/src/main/java/ai/traceroot/sdk/logger/log4j2/Log4j2TraceRootLogger.java +++ b/src/main/java/ai/traceroot/sdk/logger/log4j2/Log4j2TraceRootLogger.java @@ -59,26 +59,28 @@ public static void initialize(TraceRootConfigImpl config) { } } - /** Wrap FILE appenders to add TraceRoot JSON format */ + /** Wrap all RollingFileAppender instances to add TraceRoot JSON format */ private static void wrapFileAppenders(LoggerContext context, TraceRootConfigImpl config) { try { // Get root logger org.apache.logging.log4j.core.Logger rootLogger = context.getLogger(LogManager.ROOT_LOGGER_NAME); - // Wrap FILE appenders to add TraceRoot JSON format - org.apache.logging.log4j.core.Appender fileAppender = rootLogger.getAppenders().get("FILE"); - if (fileAppender != null && !(fileAppender instanceof Log4j2FileAppenderWrapper)) { - // Remove the original appender - rootLogger.removeAppender(fileAppender); + // Iterate through all appenders and wrap any RollingFileAppender instances + for (org.apache.logging.log4j.core.Appender appender : rootLogger.getAppenders().values()) { + if (appender instanceof org.apache.logging.log4j.core.appender.RollingFileAppender + && !(appender instanceof Log4j2FileAppenderWrapper)) { + // Remove the original appender + rootLogger.removeAppender(appender); - // Create wrapper with TraceRoot format - Log4j2FileAppenderWrapper wrapper = Log4j2FileAppenderWrapper.wrap(fileAppender); - wrapper.setConfig(config); - wrapper.start(); + // Create wrapper with TraceRoot format + Log4j2FileAppenderWrapper wrapper = Log4j2FileAppenderWrapper.wrap(appender); + wrapper.setConfig(config); + wrapper.start(); - // Add the wrapped appender - rootLogger.addAppender(wrapper); + // Add the wrapped appender + rootLogger.addAppender(wrapper); + } } } catch (Exception e) {