<dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-logback-1.x</artifactId><version>8.3.0</version></dependency>
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"><layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"><Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{36} -%msg%n</Pattern></layout></encoder>

<dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-log4j-1.x</artifactId><version>{project.release.version}</version></dependency>
log4j.appender.CONSOLE.layout=org.apache.skywalking.apm.toolkit.log.log4j.v1.x.TraceIdPatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d [%T] %-5p %c{1}:%L - %m%n
-javaagent, log4j will output TraceID. If the tracer is not activated, the output will be TID: N/A.
<dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-log4j-2.x</artifactId><version>{project.release.version}</version></dependency>
[%traceId] in the pattern of log4j2.xml.<Appenders><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="%d [%traceId] %-5p %c{1}:%L - %m%n"/></Console></Appenders>
<Configuration><Appenders><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="%d [%traceId] %-5p %c{1}:%L - %m%n"/></Console></Appenders><Loggers><AsyncRoot level="INFO"><AppenderRef ref="Console"/></AsyncRoot></Loggers></Configuration>
log4j2.contextSelector to org.apache.logging.log4j.core.async.AsyncLoggerContextSelector.<Configuration status="WARN"><Appenders><!-- Async Loggers will auto-flush in batches, so switch off immediateFlush. --><RandomAccessFile name="RandomAccessFile" fileName="async.log" immediateFlush="false" append="false"><PatternLayout><Pattern>%d %p %c{1.} [%t] [%traceId] %m %ex%n</Pattern></PatternLayout></RandomAccessFile></Appenders><Loggers><Root level="info" includeLocation="false"><AppenderRef ref="RandomAccessFile"/></Root></Loggers></Configuration>
<Configuration status="WARN"><Appenders><!-- Async Loggers will auto-flush in batches, so switch off immediateFlush. --><RandomAccessFile name="RandomAccessFile" fileName="asyncWithLocation.log"immediateFlush="false" append="false"><PatternLayout><Pattern>%d %p %class{1.} [%t] [%traceId] %location %m %ex%n</Pattern></PatternLayout></RandomAccessFile></Appenders><Loggers><!-- pattern layout actually uses location, so we need to include it --><AsyncLogger name="com.foo.Bar" level="trace" includeLocation="true"><AppenderRef ref="RandomAccessFile"/></AsyncLogger><Root level="info" includeLocation="true"><AppenderRef ref="RandomAccessFile"/></Root></Loggers></Configuration>
<Configuration><Appenders><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="%d [%traceId] %-5p %c{1}:%L - %m%n"/></Console><Async name="Async"><AppenderRef ref="Console"/></Async></Appenders><Loggers><Root level="INFO"><AppenderRef ref="Async"/></Root></Loggers></Configuration>
-javaagent, log4j will output TraceID. If the tracer is not activated, the output will be TID: N/A.
Feedback