slf4j中的MDC工具类使用
MDC: Mapped Diagnostic Context,可以粗略的理解成是一个线程安全的存放诊断日志的容器。内部通过ThreadLocal实现了不同线程的隔离。
参考:https://www.jianshu.com/p/8b01d62e2431 https://juejin.cn/post/6844904132478763022
内部实现:依赖MDCAdapter接口,不同的日志组件都实现如Log4jMDCAdapter
应用场景:
a)WEB应用,如果想在日志中输出请求用户IP 地址、请求 URL、统计耗时等等;
b)在WEB应用中,借助MDC来保存用户请求时产生的reqId,当请求完成后,再将reqId进行移除,这么通过grep reqId就能轻松get整个请求流程的日志轨迹;
c)在微服务盛行的当下,链路跟踪是个难题,而借助MDC去埋点
Seata代码
MDC API:
代码样例:需代码和log*.xml配合使用
效果:
多线程场景验证:
标签:三方,WEB,请求,MDC,reqId,https,日志 From: https://www.cnblogs.com/clarino/p/17062758.html