如何使用MDC实现日志链路跟踪
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容介绍了"如何使用MDC实现日志链路跟踪"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言原理
千家信息网最后更新 2026年11月01日如何使用MDC实现日志链路跟踪
本篇内容介绍了"如何使用MDC实现日志链路跟踪"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

前言
原理
实现
过滤器
logback.xml
返回体
效果日志
前言
在微服务环境中,我们经常使用Skywalking、CAT等去实现整体请求链路的追踪,但是这个整体运维成本高,架构复杂,我们来使用MDC通过Log来实现一个轻量级的会话事务跟踪功能。
原理
MDC org.sl4j.MDC其实内部就是ThreadLocal,MDC提供了put/get/clear等几个核心接口,用于操作ThreadLocal中的数据;ThreadLocal中的K-V,可以在logback.xml中声明,最终将会打印在日志中。
// java代码 MDC.put("userId","laker"); // logback.xml %X{userId}例如:
实现
整体流程如下:
用户登录系统,我们日志中记录userId:laker。
用户发起请求,一个请求中可能实际产生多个http请求,这里可以前端生成一个requestId
在返回体中,返回requestId。
研发运维人员,可以根据 userId和requestId去日志中捞请求链路。
过滤器
@Order(value = Ordered.HIGHEST_PRECEDENCE + 100) @Component @WebFilter(filterName = "MDCFilter", urlPatterns = "/*") public class MDCFilter extends OncePerRequestFilter { @Override protected void doFilterInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, FilterChain filterChain) throws ServletException, IOException { try { MDC.put("userId", "laker"); MDC.put("requestId", IdUtil.fastUUID()); } catch (Exception e) { // } try { filterChain.doFilter(httpServletRequest, httpServletResponse); } finally { MDC.clear(); } } }logback.xml
${LOG_HOME}/test.log true false %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{50} %line - %m%n ${LOG_HOME}/test.log.%d{yyyy-MM-dd} 15 ${log.pattern} %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{50} %line - %m%n
返回体
public class Response{ @ApiModelProperty(notes = "响应码,非200 即为异常", example = "200") private final int code; @ApiModelProperty(notes = "响应消息", example = "提交成功") private final String msg; @ApiModelProperty(notes = "响应数据") private final T data; @ApiModelProperty(notes = "请求id") private final String requestId; public Response(int code, String msg, T data) { this.code = code; this.msg = msg; this.data = data; this.requestId = MDC.get("requestId"); }
效果日志
响应
{ code: 200, msg: "", requestId: "74a269a8-3cb4-417e-853c-b968b77cce23" }日志
18:37:15.997 [http-nio-8080-exec-1] INFO [laker|90717490-5ef4-4e46-bc2c-605952fc3803] c.l.m.c.InfoController - [v2Map,17] - null 18:37:38.980 [http-nio-8080-exec-2] INFO [laker|82bde351-f86e-466f-97a0-c857a0c4c1c9] c.l.m.c.InfoController - [v2Map,17] - null 18:37:39.992 [http-nio-8080-exec-3] INFO [laker|74a269a8-3cb4-417e-853c-b968b77cce23] c.l.m.c.InfoController - [v2Map,17] - null
"如何使用MDC实现日志链路跟踪"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
日志
链路
跟踪
整体
内容
前言
原理
实际
效果
数据
更多
用户
知识
过滤器
复杂
实用
成功
学有所成
接下来
事务
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
湖北九亚互联网络科技有限公司
互联网金融监管科技数据
港股互联网科技股
礼当家互联网科技
互联网 视角下的科技创新
四川狮子座互联网科技
四个字互联网科技公司取名
华中科技有哪些互联网大佬
科技与互联网的利与弊
宁波青枫互联网科技有限公司
现代互联网科技股
华服互联网科技官网
湖南一路畅行互联网科技
华夏恒生科技与互联网科技
长沙互联网科技
山东有哪些互联网科技公司
互联网科技包装股
福仕德教育科技互联网
互联网科技的前景
保山浩联互联网科技有限公司
互联网科技未来
居家互联网科技有限公司
新华互联网科技校企合作
湖南洣水互联网科技有限公司扣款
福建科技产业互联网发展
互联网公司科技股
长沙互联网科技
工业互联网山东科技大学
互联网科技数字货币
东营紫格互联网科技