这是一个日志追踪的组件,适用于spring为架构项目中。原理是利用过滤器或拦截器拦截请求,生成一个uuid,并加入到logback的上下文MDC中,然后在logback.xml中打印出来,使日志调用链具有可检索的全局唯一id。
日志追踪的工具有很多,但是要么都很重,安装使用成本很高,要么不全面,不能同时兼容多种框架,traclog很轻很简单,特别适合小型单机项目或者业务不太复杂的微服务,大型项目除了日志追踪可能还要日志收集和链路追踪,那么请参考其他开源工具,比如skywalking:https://www.jianshu.com/p/b69bc629f476
只能在java springboot框架的项目中使用,并且日志组件用的使logback。支持以下常见应用生成或传递traceId:springmvc的http, springcloud的feign,有注解@Scheduled,@PostConstruct,@Async的方法,apache dubbo调用,以及支持Okhttp和HttpClient调用时传递traceId(需要自己将已实现的拦截器加入到你的Okhttp和HttpClient)。
<dependency>
<groupId>com.wuyunonline.tracelog</groupId>
<artifactId>tracelog-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>
配置logback
项目中找到logback.xml或logback-spring.xml,
在日志格式中加入[traceId:%X{traceId}]
例如:
启动项目
启动自己的项目后,测试一下发起一个请求,可以看到日志打印traceId说明成功,例如:
import com.wuyunonline.tracelog.interceptor.TraceLogOkhttpInterceptor;
...
OkHttpClient okHttpClient = new OkHttpClient.Builder().addInterceptor(new TraceLogOkhttpInterceptor()).build();
HttpClient
import com.wuyunonline.tracelog.interceptor.TraceLogHttpClientInterceptor;
...
CloseableHttpClient httpClient = HttpClientBuilder.create().addInterceptorFirst(new TraceLogHttpClientInterceptor()).build();
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。