1.MDC是什么

先来一段原版注释,

/*** This class hides and serves as a substitute for the underlying logging* system's MDC implementation.* * <p>* If the underlying logging system offers MDC functionality, then SLF4J's MDC,* i.e. this class, will delegate to the underlying system's MDC. Note that at* this time, only two logging systems, namely log4j and logback, offer MDC* functionality. For java.util.logging which does not support MDC,* {@link BasicMDCAdapter} will be used. For other systems, i.e slf4j-simple* and slf4j-nop, {@link NOPMDCAdapter} will be used.** <p>* Thus, as a SLF4J user, you can take advantage of MDC in the presence of log4j,* logback, or java.util.logging, but without forcing these systems as* dependencies upon your users.* * <p>* For more information on MDC please see the <a* href="http://logback.qos.ch/manual/mdc.html">chapter on MDC</a> in the* logback manual.* * <p>* Please note that all methods in this class are static.* * @author Ceki Gülcü* @since 1.4.1*/

这是MDC类上的注释,但是没有讲这个是干什么的。具体的内容在有一个页面:

Chapter 8: Mapped Diagnostic Context

简单来说就是日志的增强功能,如果配置了MDC,并添加了相应的key value,就会在打日志的时候把key对应的value打印出来。

内部是用ThreadLocal来实现的,可以携带当前线程的context信息。

2.MDCAdapter——LogbackMDCAdapter

MDC中包装了一个MDCAdapter,这是一个接口,不同的log包有自己对应的实现。对于不支持MDC的包,比如java.util.logging,使用默认的BasicMDCAdapter,slf4j-nop有NOPMDCAdapter。

这里说的实现是LogbackMDCAdapter。

log(一)——MDC入门相关推荐

  1. log(二)——MDC实现之ThreadLocal

    因为MDC底层是用ThreadLocal实现的,所以这里补充一些和ThreadLocal相关的知识点. 1.ThreadLocal的三个层次 关于ThreadLocal有三个层次,可以按照这三个层次去 ...

  2. log(五)——MDC总结

    1.为什么最开始子线程会得到父线程MDC设置的内容? 创建子线程的时候会调用init(ThreadGroup g, Runnable target, String name,long stackSiz ...

  3. log(四)——MDC使用

    1.MDC put 用MDC的put方法,把需要的context添加到当前线程的context map中. 之前说过,子线程在创建的时候会把父线程中的inheritableThreadLocals变量 ...

  4. 2接口详解_TS入门笔记2——TS接口进阶详解

    TS入门笔记--TS接口进阶详解 一.为什么需要接口? let obj:object; // 定义了一个只能保存对象的变量 // obj = 1; // obj = "123"; ...

  5. Git和GitHub快速入门

    Git入门 简介 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的分布式版本控制系统. 工具 准备工具 Git下载地址:https://git-scm ...

  6. filebeat + logstash 发送日志至kafka 入门

    filebeat 官方文档 配置文件 filebeat.yml filebeat.inputs:# Each - is an input. Most options can be set at the ...

  7. 如何开始rails项目

    1.安装操作系统(Linux) 经过实践,rails项目可以顺利在windows.linux(Ubuntu).unix(solaris)下运行 但推荐使用的平台仍是Linux,所以你至少需要熟悉以下内 ...

  8. firefox 扩展

    firefox 扩展 <table border="0" cellpadding="4"> <tbody><tr> < ...

  9. java 对象构造函数_20.Java基础_对象的构造函数

    package pack1; public class Student { private String name; private int age; //构造方法 //如果没有任何构造函数,系统会自 ...

最新文章

  1. python行与行之间必须对齐_Python行和缩进
  2. Jenkins+Gradle+Git+Pyger+二维码搭建Android自动打包平台
  3. JMS - QueueBrowser
  4. 对口单招考试能用计算机吗,对口单招计算机能考试标准.doc
  5. wxpython使用matplot_测试怎么将MatPlotLib嵌入到wxPython中
  6. 【戴嘉乐】(进阶)基于IPFS和Ngrok构建自维护资源网关
  7. 调试WebApi的一些方法
  8. 数据可视化表格-设计经验分享!
  9. php7 imagick扩展,php7安装imagick扩展
  10. Ubuntu系列硬盘安装
  11. 小米手机60帧录屏_小米手机中居然有这么强大投屏录屏功能?!我可能用了个假小米吧...
  12. android 模拟器 root
  13. 基于ZYNQ、AM5728、AM5708、AM437x、AM335x、STM32+FPGA等平台提供了开源EtherCAT主站IgH案例
  14. matlab 矩阵求和计算
  15. 如何使用JSON Web令牌(JWT)保护您的文档
  16. 实验三 数字加法器的设计【Verilog】
  17. hdu 5234 - Happy birthday DP
  18. system 权限读取注册表HKEY_CURRENT_USER
  19. 【华人学者风采】程学旗 中国科学院
  20. ubuntu中搜狗输入法怎么翻页

热门文章

  1. 高德地图定位 地图比例缩放
  2. 好佳居窗帘十大品牌 窗帘选配有什么方法
  3. 怎么在火狐中调试html,如何利用火狐浏览器开发工具调试网页颜色搭配?
  4. 扫描NFC卡,获取卡号存储到本地并可以以Excel形式导出数据
  5. sam卡和sim卡区别_科普拍了拍你~PSAM卡\SIM与SAM卡有什么不同?
  6. RPG Maker mv框架代码解析之窗口图片显示
  7. npm install很慢(奇葩)解决方法
  8. 【教程】win10下安装Biolinux双系统
  9. html title中加图标,科技常识:HTML中title前面小图标的实现_如何给网页标题添加icon小图标...
  10. ROS多机通讯主机从机配置