SLF4J及其MDC详解
SLF4J,即Simple Logging Facade for Java,是一个通用的、Java日志系统的抽象框架。
对于实现了SLF4J的日志系统,能够在应用部署时(而不是编译时)动态插入应用,使得应用可以采用任何日志系统。
1. 常见的SLF4J日志系统实现
- No-operation (NOP) Logger
即org.slf4j.helpers.NOPMDCAdapter,是SLF4J API自带的默认实现。该实现只是占位,不会输出任何日志。
- Simple Logger
即org.slf4j.impl.SimpleLogger,是SLF4J API提供的简单日志实现。
- Logback
原生实现了SLF4J API的日志系统,是SLF4J的标准参考实现,提供了强大而灵活的日志功能,是Log4j的继任者。
- Log4j
通过封装实现了SLF4J API的日志系统。
- JCL (Jakarta Commons Logging)
通过封装实现了SLF4J API的日志系统。
- Java Logging(JUL, java.util.logging)
通过封装实现了SLF4J API的日志系统。
2. SLF4J的基本用法
1) 在Java应用类中调用SLF4J API输出日志
org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(MyClassName.class);
logger.info("my logs");
2) 配置mdc.xml,以指定日志格式等(可选)
<configuration><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><layout><Pattern>%-4r [%thread] %-5level C:%X{MDC.my_param1} N:%X{MDC.my_param2} - %msg%n</Pattern></layout></appender><root level="debug"><appender-ref ref="CONSOLE"/></root>
</configuration>
3. MDC (Mapped Diagnostic Context)
MDC顾名思义提供日志的上下文信息,通过MDC中的参数值区分输出的日志。
SLF4J的MDC实质上就是一个Map。通常实现SLF4J的日志系统支持MDC,即表明该日志系统负责维护这个Map。应用就可以依赖于日志系统,直接存取key/value对到该Map中。
在SLF4J API中,也提供了MDC的默认实现类org.slf4j.MDC。如果实现SLF4J API的日志系统也支持MDC功能,则覆盖org.slf4j.MDC类。
目前,只有Log4j和Logback支持MDC功能。Java Logging不支持MDC功能,可以通过SLF4J API中的org.slf4j.helpers.BasicMDCAdapter提供MDC功能。而对于其他的日志系统(如slf4j-simple, slf4j-nop),只能使用SLF4J API中的org.slf4j.helpers.NOPMDCAdapter提供MDC功能。
参考链接:
http://www.slf4j.org/
https://github.com/qos-ch/slf4j
http://www.slf4j.org/api/org/slf4j/MDC.html
SLF4J及其MDC详解相关推荐
- Log4j2的MDC详解
概述 MDC介绍 MDC(Mapped Diagnostic Context,映射调试上下文)是 log4j 和 logback 提供的一种方便在多线程条件下记录日志的功能.某些应用程序采用多线程的方 ...
- SLF4J和Logback日志框架详解
SLF4J和Logback日志框架详解 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 本文讲述SLF4J和Logback日志框架. SLF4J是一 ...
- slf4j log4j logback关系详解和相关用法 【by Sinte-Beuve】
slf4j log4j logback关系详解和相关用法 slf4j log4j logback的关系 The Simple Logging Facade for Java是什么? log4j和log ...
- SpringBoot——slf4j+logback日志处理及配置详解
SpringBoot--sl4j+logback日志处理及配置详解 日志的级别 打印级别:ALL > TRACE > FATAL > DEBUG > INFO > WAR ...
- Slf4j之MDC机制
什么是MDC机制 MDC(Mapped Diagnostic Contexts)映射诊断上下文,主要用在做日志链路跟踪时,动态配置用户自定义的一些信息,比如requestId.sessionId等等. ...
- JUC第六讲:ThreadLocal/InheritableThreadLocal详解/TTL-MDC日志上下文实践
本文是JUC第六讲:ThreadLocal/InheritableThreadLocal详解.ThreadLocal无论在项目开发还是面试中都会经常碰到,本文就 ThreadLocal 的使用.主要方 ...
- spring boot 实战 / 可执行war启动参数详解
概述 上一篇文章<spring boot 实战 / mvn spring-boot:run 参数详解>主要讲解了spring boot 项目基于maven插件启动过程中借助profil ...
- Lombok 使用详解,简化 Java 编程
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者 | 日拱一兵 来源 | 公众号(日拱一兵) 在 Java 应 ...
- 十二、springboot 详解RestControllerAdvice(ControllerAdvice)
springboot 详解RestControllerAdvice(ControllerAdvice)拦截异常并统一处理 简介 @Target({ElementType.TYPE}) @Retenti ...
最新文章
- 正则表达式(overall)
- 计算机结构介绍,计算机系统结构介绍.pdf
- netlink的内核实现原理
- OSI(Open System Interconnect)开放式系统互联
- 【洛谷 P2731】骑马修栅栏【欧拉路与欧拉回路】
- delphixe android服务,delphi xe10 android服务gps [复制]
- 北理工嵩天Python面向对象程序设计笔记
- 如何用AE做出动画效果杭州UI设计分享方法
- linux命令行显卡驱动,Linux下NVIDIA显卡驱动安装方法
- 强网杯2022 crypto 复现
- 小程序携带参数跳转的方式wx.navigateTo的URL和通过data-传递
- 【Java系列】:异常-Exception
- 目标检测Tensorflow:Yolo v3代码详解 (2)
- elasticsearch安装采坑记录
- 阿里大数据ACP认证对找工作到底有用嘛?
- 罪恶黑名单第一季/全集The Blacklist迅雷下载
- 结缘OpenStack:运营商NFV部署加速 要开源也要保障
- C语言调用API的方法
- 用户登录程序C语言实现
- SQL计算某个字符的出现次数