slf4j MDC是个好东西

slf4j MDC是个好东西

简介

MDC 全拼 Mapped Diagnostic Contexts,是SLF4J类日志系统中实现分布式多线程日志数据传递的重要工具。

同时,用户也可利用MDC将一些运行时的上下文数据打印出来。


什么意思呢?

常规情况下,写打日志的代码时,一般都是log.info、log.warn、log.error将想要打的日志进行拼装和格式化,打到日志输出中。MDC能干什么呢?能在不改动log.xxx打日志代码的情况下,在最终的日志输出的指定位置打印额外的信息。而这,就是靠MDC进行传递实现的。


应用场景

在日志中自动打印框架/组件方面的信息

例如:

  • 全链路日志traceId
  • 用户请求的IP地址、user-agent

代码示例

一般配合AOP / Filter / Interceptor使用

@Around(value = "execution(* com.xx.xx.facade.impl.*.*(..))", argNames="pjp")
public Object validator(ProceedingJoinPoint pjp) throws Throwable {
   
  try {
   
    String traceId = TraceUtils.begin();
    MDC.put("mdc_trace_id", traceId);    
    Object obj = pjp.proceed(args);
    return obj;
  } catch(Throwable e) {
   
    //TODO 处理错误
  } finally {
   
    TraceUtils.
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值