SkyWalking整合logback获取全局traceId

SkyWalking 整合logback

在我们SpringBoot项目中整合了SkyWalking链路追踪,为SkyWalking的Dashboard中通过tranceId快速定位链路信息,我们可以通过SkyWalking的logback插件在日志中打印出traceId就可以很方便的通过traceId去定位问题

  1. 添加pom依赖

            <dependency>
                <groupId>org.apache.skywalkinggroupId>
                <artifactId>apm-toolkit-logback-1.xartifactId>
                <version>8.5.0version>
            dependency>
    
  2. 修改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>${CONSOLE_LOG_PATTERN}pattern>
        layout>
    encoder>
    
  3. 核心是encoder 的layout 类是org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout

  4. pattern 中的 %tid是展示 SkyWalking的 traceId

  5. 支持探针和注解

测试

在没有链路追踪的情况下 默认TID 是N/A 有则是真实的traceId

image-20210508175258043

在Dashboard上通过traceId查看

SkyWalking整合logback获取全局traceId_第1张图片

你可能感兴趣的:(SkyWalking)