java服务生成TraceId
- 一、背景
- 二、配置
- 2.1 pom文件引入依赖
- 2.2 logback-spring.xml配置
- 三、启动项目
一、背景
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