skywalking项目打印traceId

1、背景

在我们系统或者应用中集成了skywalking后,我就可以进行链路的跟踪了。我们在使用ELK或者其他的一些日志分析工具查找日志。如果要跟踪系统调用链,我们需要在日志中打印出traceId。

2、引入依赖



    org.apache.skywalking
    apm-toolkit-logback-1.x
    8.4.0

3、修改logback.xml

在对应的appender中添加


	
		[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger{36} - [%tid] - %msg%n
	
  • Logback中的encoder本身是包含一个layout的,在有此Appender中是可以直接用encoder中的layout部分的。
  • encoder的class是LayoutWrappingEncoder,不是PatternLayoutEncoder。
  • 使用%tid 来占trace-id的位置,默认TID:N/A,当有请求调用时,会显示trace-id。

修改

  • layout的class采用skywalking中才改的org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout。
  • 在pattern中添加[%tid] tid参数是用来打印traceId的值。

全部logback.xml



	
	

	
	
		
			
				[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger{36} - [%tid] - %msg%n
			
		
	

	
	
		${LOG_HOME:-c:/}logs/info/info.log
		
			${LOG_HOME:-c:/}logs/info/info-%d{yyyy-MM-dd}.%i.log
			
			60
			
				5MB
			
		
		
			[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger{36} - [%tid] - %msg%n
		
		
			INFO
			ACCEPT
			DENY
		
	
	
	
	
		${LOG_HOME:-c:/}logs/error/error.log
		
			${LOG_HOME:-c:/}logs/error/error-%d{yyyy-MM-dd}.%i.log
			
			60
			
				5MB
			
		
		
			[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger{36} - [%tid] - %msg%n
		
		
			ERROR
			ACCEPT
			DENY
		
	
	
	
	
		${LOG_HOME:-c:/}logs/all/all.log
		
			${LOG_HOME:-c:/}logs/all/all-%d{yyyy-MM-dd}.%i.log
			
			60
			
				5MB
			
		
		
			[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger{36} - [%tid] - %msg%n
		
	

	
		
		
		
		
	

4、示例代码

https://gitee.com/xixingzhe2/learn/tree/master/skywalking

你可能感兴趣的:(spring,工具,微服务,logback,skywalking)