介绍
traceId是指在服务端收到客户端请求后到服务端返回给客户端结果的过程中给每一条日志添加一个相同的traceId来跟踪请求到返回的整个过程。
为什么要加traceId
在微服务场景下,加上traceId有利于排查问题。
如何设计traceId
总共有四部分内容需要考虑进去:
- 用户相关的UID
- 消息相关的msgid
- 递增或唯一的tid
- 时间相关的时间戳
log4j2的traceId使用
在web服务端的过滤器中,加入如下代码
// MDC是log4j2用于添加tranceId的工具,traceId可以取其他名字
MDC.put("traceId", UUID.randomUUID().toString());
在log4j2.xml的日志输出格式中,获取traceId的值
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS}[%t][%-5level][%X{traceId}]: %msg%n"/>
演示