Skip to content

Commit d6be5d1

Browse files
committed
fix: fix for different json log names
1 parent 9da48f2 commit d6be5d1

File tree

3 files changed

+45
-40
lines changed

3 files changed

+45
-40
lines changed

examples/log4j2-custom-format-example/src/main/resources/log4j2.xml

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,50 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<Configuration status="WARN">
2+
<Configuration status="DEBUG" monitorInterval="30">
33
<Properties>
4-
<Property name="INSTANCE_IP">192.168.1.100</Property>
4+
<Property name="APP_NAME" value="${spring:spring.application.name:-log4j2-custom-format-example}"/>
5+
<Property name="VER" value="${spring:spring.application.version:-1.0.0}"/>
6+
<Property name="INSTANCE_IP" value="${sys:instanceIp:-192.168.1.100}"/>
7+
<Property name="LOG_HOME">${sys:log.dir:-logs}</Property>
8+
<Property name="LOG_NAME">${APP_NAME}</Property>
9+
<Property name="FILE_NAME">${LOG_HOME}/${APP_NAME}.log</Property>
10+
<Property name="CONSOLE_PATTERN_FORMAT"
11+
value='{"%d{yyyy-MM-dd HH:mm:ss.SSS}","%highlight{%-5level}","%thread","${INSTANCE_IP}","%highlight{%X{trace-id}}","%X{trace-ip}","%highlight{%logger{0}}","%highlight{%method}",%jm}%n'/>
12+
<Property name="JSON_PATTERN_FORMAT"
13+
value='{"dateTime":"%d{yyyy-MM-dd HH:mm:ss.SSS}","level":"%-5level","thread":"%thread","instanceIp":"${INSTANCE_IP}","traceId":"%X{trace-id}","requestIp":"%X{trace-ip}","class":"%logger{0}","method":"%method","message":%jm}%n'/>
514
</Properties>
615

716
<Appenders>
8-
<!-- Console Appender -->
9-
<Console name="CONSOLE" target="SYSTEM_OUT">
10-
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
17+
<Console name="Console" target="SYSTEM_OUT">
18+
<ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
19+
<PatternLayout>
20+
<Pattern>${CONSOLE_PATTERN_FORMAT}</Pattern>
21+
</PatternLayout>
1122
</Console>
12-
13-
<!-- File Appender with Custom JSON Pattern -->
14-
<!-- This pattern will be merged with TraceRoot required fields -->
15-
<!-- User's custom fields: dateTime, thread, class, method, instanceIp, requestIp -->
16-
<!-- Conflicting fields (level, message) will use TraceRoot values -->
17-
<RollingFile name="FILE" fileName="logs/traceroot-sdk.log"
18-
filePattern="logs/traceroot-sdk.%d{yyyy-MM-dd}.%i.log">
19-
<!-- Custom pattern with user-defined fields -->
20-
<PatternLayout pattern='{"dateTime":"%d{yyyy-MM-dd HH:mm:ss.SSS}","level":"%-5level","thread":"%thread","instanceIp":"${INSTANCE_IP}","traceId":"%X{trace-id}","requestIp":"%X{trace-ip}","class":"%logger{0}","method":"%method","message":%jm}%n'/>
23+
<RollingFile name="rollingFile" fileName="${FILE_NAME}"
24+
filePattern="${LOG_HOME}/${LOG_NAME}.%d{yyyy-MM-dd}.log.%i">
25+
<ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
26+
<PatternLayout>
27+
<Pattern>${JSON_PATTERN_FORMAT}</Pattern>
28+
</PatternLayout>
2129
<Policies>
2230
<TimeBasedTriggeringPolicy/>
23-
<SizeBasedTriggeringPolicy size="100MB"/>
31+
<SizeBasedTriggeringPolicy size="200MB"/>
2432
</Policies>
25-
<DefaultRolloverStrategy max="30">
26-
<Delete basePath="logs" maxDepth="1">
27-
<IfFileName glob="traceroot-sdk.*.log"/>
28-
<IfLastModified age="30d"/>
29-
</Delete>
30-
</DefaultRolloverStrategy>
33+
<DefaultRolloverStrategy max = "50" />
3134
</RollingFile>
3235
</Appenders>
3336

3437
<Loggers>
35-
<!-- Root logger configuration -->
36-
<Root level="INFO">
37-
<AppenderRef ref="CONSOLE"/>
38-
<AppenderRef ref="FILE"/>
38+
<!-- LOG everything at DEBUG level -->
39+
<Root level="DEBUG">
40+
<AppenderRef ref="Console"/>
41+
<AppenderRef ref="rollingFile"/>
3942
</Root>
4043

4144
<!-- TraceRoot SDK specific logger -->
4245
<Logger name="ai.traceroot.sdk" level="WARN" additivity="false">
43-
<AppenderRef ref="CONSOLE"/>
44-
<AppenderRef ref="FILE"/>
46+
<AppenderRef ref="Console"/>
47+
<AppenderRef ref="rollingFile"/>
4548
</Logger>
4649

4750
<!-- Reduce noise in logs -->

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
<!-- Logging (updated to latest secure version 1.5.18) -->
5858
<logback.version>1.5.18</logback.version>
5959
<slf4j.version>2.0.16</slf4j.version>
60-
<log4j2.version>2.24.3</log4j2.version>
60+
<log4j2.version>2.23.1</log4j2.version>
6161

6262
<!-- AWS SDK (updated to latest) -->
6363
<aws-sdk.version>2.29.15</aws-sdk.version>

src/main/java/ai/traceroot/sdk/logger/log4j2/Log4j2TraceRootLogger.java

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -59,26 +59,28 @@ public static void initialize(TraceRootConfigImpl config) {
5959
}
6060
}
6161

62-
/** Wrap FILE appenders to add TraceRoot JSON format */
62+
/** Wrap all RollingFileAppender instances to add TraceRoot JSON format */
6363
private static void wrapFileAppenders(LoggerContext context, TraceRootConfigImpl config) {
6464
try {
6565
// Get root logger
6666
org.apache.logging.log4j.core.Logger rootLogger =
6767
context.getLogger(LogManager.ROOT_LOGGER_NAME);
6868

69-
// Wrap FILE appenders to add TraceRoot JSON format
70-
org.apache.logging.log4j.core.Appender fileAppender = rootLogger.getAppenders().get("FILE");
71-
if (fileAppender != null && !(fileAppender instanceof Log4j2FileAppenderWrapper)) {
72-
// Remove the original appender
73-
rootLogger.removeAppender(fileAppender);
69+
// Iterate through all appenders and wrap any RollingFileAppender instances
70+
for (org.apache.logging.log4j.core.Appender appender : rootLogger.getAppenders().values()) {
71+
if (appender instanceof org.apache.logging.log4j.core.appender.RollingFileAppender
72+
&& !(appender instanceof Log4j2FileAppenderWrapper)) {
73+
// Remove the original appender
74+
rootLogger.removeAppender(appender);
7475

75-
// Create wrapper with TraceRoot format
76-
Log4j2FileAppenderWrapper wrapper = Log4j2FileAppenderWrapper.wrap(fileAppender);
77-
wrapper.setConfig(config);
78-
wrapper.start();
76+
// Create wrapper with TraceRoot format
77+
Log4j2FileAppenderWrapper wrapper = Log4j2FileAppenderWrapper.wrap(appender);
78+
wrapper.setConfig(config);
79+
wrapper.start();
7980

80-
// Add the wrapped appender
81-
rootLogger.addAppender(wrapper);
81+
// Add the wrapped appender
82+
rootLogger.addAppender(wrapper);
83+
}
8284
}
8385

8486
} catch (Exception e) {

0 commit comments

Comments
 (0)