MDC简介
- MDC Mapped Diagnostic Contexts slf4j+logBack
- 使用简单在代码中MDC.put将指定值加到线程上下文中的Map,在同线程中使用时get 出来,最后调用clear方法清理要丢弃的数据
Slf4j MDC :
对外接口,就是对参数进行校验,然后调用MDCAdapter的方法实现。
Logback MDC :
LogbackMDCAdapter类实现MDCAdapter接口,实现 put、get、remove等方法。
copyOnThreadLocal:存储每个线程的多个变量
当在logback.xml中配置了%X{key} 或 SiftingAppender的<discriminator>的<key>,在需要输出日志的时候,从MDC中获取对应的key值,然后append到日志字符串中或生成文件路径,然后输出。
使用实例
必须得jar
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.21</version>
</de