SkyWalking 整合logback
在我们SpringBoot项目中整合了SkyWalking链路追踪,为SkyWalking的Dashboard中通过tranceId快速定位链路信息,我们可以通过SkyWalking的logback插件在日志中打印出traceId就可以很方便的通过traceId去定位问题
-
添加pom依赖
<dependency> <groupId>org.apache.skywalking</groupId> <artifactId>apm-toolkit-logback-1.x</artifactId> <version>8.5.0</version> </dependency>
-
修改logback.xml配置文件 添加一个encoder
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr([%tid]) %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %L %X{mdc} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/> <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder"> <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout"> <!-- <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level logger_name:%logger{36} - [%tid] - message:%msg%n</pattern>--> <pattern>${CONSOLE_LOG_PATTERN}</pattern> </layout> </encoder>
-
核心是encoder 的layout 类是org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout
-
pattern 中的 %tid是展示 SkyWalking的 traceId
-
支持探针和注解
测试
在没有链路追踪的情况下 默认TID 是N/A 有则是真实的traceId
在Dashboard上通过traceId查看