你了解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