你了解Slf4j的MDC吗?

SLF4J 提供了MDC ( Mapped Diagnostic Contexts )功能

DMC简单的可以理解为,日志增强

如果项目日志比较多,项目中多线程的应用比较多,那么多个线程交叉打印日志,日志文件的内容是混乱的。

DMC可以通过AOP/Filter/Interceptor等方式,在线程中增加辅助日志,我们可以线程中通过DMC.put(key, val)来插入值,然后在配置文件中,用表达式:%X{对应的key} 将put进去的值输出到日志。

DMC好处

1.链路追踪

可以追踪线程中的调用链路

2.动态调整日志打印参数

如果有什么需要全局打印的参数,可以通过AOP + DMC来调整,如果全局改代码,肯能会很痛苦。

参考文章1:https://www.cnblogs.com/xlli/p/10078817.html

参考文章2:https://fredal.xin/mdc-in-tracing

原文地址:https://www.cnblogs.com/inkyi/p/14894806.html