一、背景

springboot服务接入SkyWalking时,想要在控制台输出TraceId信息,如下图的效果:
在这里插入图片描述

二、配置

参考文章:
https://juejin.cn/post/7238617870267465789
https://cloud.tencent.com/document/product/1463/68741

2.1 pom文件引入依赖

        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-logback-1.x</artifactId>
            <version>8.11.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-trace</artifactId>
            <version>8.1.0</version>
        </dependency>

2.2 logback-spring.xml配置

新增<appender/>标签:

    <!-- 控制台日志 -->
    <appender name="StdoutAppender" class="ch.qos.logback.core.ConsoleAppender">
        <withJansi>true</withJansi>

        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
                <pattern>[${APP_NAME}:${ServerIP}:${ServerPort}] %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%level){blue} %clr(${PID}){magenta} %clr([%tid]-[%X{traceId}-%X{spanId}]){yellow} %clr([%thread]){orange} %clr(%-40.40logger{39}){cyan} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}</pattern>
            </layout>
            <charset>UTF-8</charset>
        </encoder>
    </appender>

<root>标签内引入:

<appender-ref ref="StdoutAppender"/>

在这里插入图片描述
完整的logback-spring.xml文件,注释<!--新增traceID打印-->表示新增的配置内容:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

     <!--1.新增traceID打印-->
    <appender name="StdoutAppender" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
                 <pattern>[${APP_NAME}:${ServerIP}:${ServerPort}] %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%level){blue} %clr(${PID}){magenta} %clr([%tid]-[%X{traceId}-%X{spanId}]){yellow} %clr([%thread]){orange} %clr(%-40.40logger{39}){cyan} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}</pattern>
            </layout>
            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
        </encoder>
    </appender>

    <root level="INFO">
       <!--2.新增traceID打印-->
        <appender-ref ref="StdoutAppender" />
    </root>

    <logger name="com.skywalking.order" level="INFO"/>

        <springProfile name="test">
            <logger name="com.skywalking.order" level="DEBUG" additivity="true">
            </logger>
        </springProfile>

    <springProfile name="prd">
        <logger name="com.skywalking.order" level="INFO" additivity="true">
        </logger>
    </springProfile>
</configuration>

三、启动项目

注意:
启动项目时,必须要使用-javaagent参数激活skywalking tracer,才会输出TraceID信息。 否则,TraceID信息将会是N/A

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐