一、目的
我们都知道链路追踪在现在分布式微服务系统中有重要作用。现在很多都是直接集成zipkin的客户端,能生成web界面版查看。
但是我们项目已经有kabana的日志系统,集成zipkin需要改动很大,所以使用方案是仅仅集成sleuth即可,把链路追踪的traceId记录在log.xml的日志文件中,在原有的日志系统进行解析即可。
二、源码链接
在文章下面留言,给源码。
三、官网指导
1、在需要链路追踪的项目中pom.xml引入

2、在log4j.xml引入

3、访问测试接口feignTest1

四、实现自定义log4j2.xml中traceId数值

重启服务,请求方法

从图5中看出,我们在MDC中修改后打印的日志为[TRACEID=wangxiqniao]这个已经生效(进行了修改)。但是在底层的tracer.currentSpan().context().traceIdString()的traceID并没有进行修改,这样在没有异步线程的访问中是没有问题的,可以实现自定义的链路追踪。但是在有异步线程的方法中还是使用tracer.currentSpan().context().traceIdString()的traceID,不是我们自定义之后的(实现sleuth自定义的异步线程池也不起作用)。
五、实现多线程log4j2.xml中自定义traceId数值
这个需要新拉出一个线程,让线程在MDC内的traceId一直传递下去。
网友评论