log(一)——MDC入门
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入门相关推荐
- log(二)——MDC实现之ThreadLocal
因为MDC底层是用ThreadLocal实现的,所以这里补充一些和ThreadLocal相关的知识点. 1.ThreadLocal的三个层次 关于ThreadLocal有三个层次,可以按照这三个层次去 ...
- log(五)——MDC总结
1.为什么最开始子线程会得到父线程MDC设置的内容? 创建子线程的时候会调用init(ThreadGroup g, Runnable target, String name,long stackSiz ...
- log(四)——MDC使用
1.MDC put 用MDC的put方法,把需要的context添加到当前线程的context map中. 之前说过,子线程在创建的时候会把父线程中的inheritableThreadLocals变量 ...
- 2接口详解_TS入门笔记2——TS接口进阶详解
TS入门笔记--TS接口进阶详解 一.为什么需要接口? let obj:object; // 定义了一个只能保存对象的变量 // obj = 1; // obj = "123"; ...
- Git和GitHub快速入门
Git入门 简介 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的分布式版本控制系统. 工具 准备工具 Git下载地址:https://git-scm ...
- filebeat + logstash 发送日志至kafka 入门
filebeat 官方文档 配置文件 filebeat.yml filebeat.inputs:# Each - is an input. Most options can be set at the ...
- 如何开始rails项目
1.安装操作系统(Linux) 经过实践,rails项目可以顺利在windows.linux(Ubuntu).unix(solaris)下运行 但推荐使用的平台仍是Linux,所以你至少需要熟悉以下内 ...
- firefox 扩展
firefox 扩展 <table border="0" cellpadding="4"> <tbody><tr> < ...
- java 对象构造函数_20.Java基础_对象的构造函数
package pack1; public class Student { private String name; private int age; //构造方法 //如果没有任何构造函数,系统会自 ...
最新文章
- python行与行之间必须对齐_Python行和缩进
- Jenkins+Gradle+Git+Pyger+二维码搭建Android自动打包平台
- JMS - QueueBrowser
- 对口单招考试能用计算机吗,对口单招计算机能考试标准.doc
- wxpython使用matplot_测试怎么将MatPlotLib嵌入到wxPython中
- 【戴嘉乐】(进阶)基于IPFS和Ngrok构建自维护资源网关
- 调试WebApi的一些方法
- 数据可视化表格-设计经验分享!
- php7 imagick扩展,php7安装imagick扩展
- Ubuntu系列硬盘安装
- 小米手机60帧录屏_小米手机中居然有这么强大投屏录屏功能?!我可能用了个假小米吧...
- android 模拟器 root
- 基于ZYNQ、AM5728、AM5708、AM437x、AM335x、STM32+FPGA等平台提供了开源EtherCAT主站IgH案例
- matlab 矩阵求和计算
- 如何使用JSON Web令牌(JWT)保护您的文档
- 实验三 数字加法器的设计【Verilog】
- hdu 5234 - Happy birthday DP
- system 权限读取注册表HKEY_CURRENT_USER
- 【华人学者风采】程学旗 中国科学院
- ubuntu中搜狗输入法怎么翻页
热门文章
- 高德地图定位 地图比例缩放
- 好佳居窗帘十大品牌 窗帘选配有什么方法
- 怎么在火狐中调试html,如何利用火狐浏览器开发工具调试网页颜色搭配?
- 扫描NFC卡,获取卡号存储到本地并可以以Excel形式导出数据
- sam卡和sim卡区别_科普拍了拍你~PSAM卡\SIM与SAM卡有什么不同?
- RPG Maker mv框架代码解析之窗口图片显示
- npm install很慢(奇葩)解决方法
- 【教程】win10下安装Biolinux双系统
- html title中加图标,科技常识:HTML中title前面小图标的实现_如何给网页标题添加icon小图标...
- ROS多机通讯主机从机配置