1)简介
MDC ( Mapped Diagnostic Contexts ),顾名思义,其目的是为了便于我们诊断线上问题而出现的方法工具类。虽然,Slf4j 是用来适配其他的日志具体实现包的,但是针对 MDC功能,目前只有logback 以及 log4j 支持。
logback中MDC的功能实现很简单,就是在线程上下文中,维护一个 Map<String,String>
属性来支持日志输出的时候,当我们在配置文件logback.xml
中配置了%X{key}
,则后台日志打印出对应的 key 的值。
2)示例
MDCTest.java
package logback.mdc;
import java.util.UUID;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MDC;
public class MDCTest {
private static Logger LOGGER = LoggerFactory.getLogger(MDCTest.class);
public static void main(String[] args) {
MDC.put("threadId", UUID.randomUUID().toString());
LOGGER.info("MDCTest...");
}
}
logback-test.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>[%X{threadId}] %date %logger{10} %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
输出结果
[83021a60-6f66-4a4b-9e3c-4a3bc5d98a04] 2016-06-21 22:44:33,309 l.m.MDCTest MDCTest...
3)参考资料
http://logback.qos.ch/manual/mdc.html
http://www.ithao123.cn/content-8291525.html
相关推荐
5. **MDC与NDC**:Log4j-SLF4J-Impl支持Mapped Diagnostic Context (MDC) 和Nested Diagnostic Context (NDC),为日志信息添加上下文信息,有助于追踪和诊断问题。 四、集成与使用 集成Log4j-SLF4J-Impl通常涉及...
2. **logback-classic**: 基于 logback-core,logback-classic 实现了 SLF4J(Simple Logging Facade for Java)接口,允许用户通过 SLF4J API 进行日志记录,而无需直接依赖特定的日志实现。SLF4J 提供了一层抽象,...
7. **调试和诊断**:SLF4J提供了方便的调试工具,如`MDC`(Mapped Diagnostic Context)和`NDC`(Nested Diagnostic Context),它们可以存储上下文相关的数据,帮助开发者更好地跟踪和理解日志信息。 8. **最佳...
《Tomcat、SLF4J与Logback集成的深度解析》 在现代Java Web应用开发中,日志管理是至关重要的部分,它帮助开发者追踪应用的运行状态,定位和解决问题。Tomcat作为广泛使用的Java应用服务器,SLF4J(Simple Logging ...
2. **logback-classic**: 基于 logback-core,logback-classic 实现了 Java 日志接口(Java Logging API,JUL),并且与 SLF4J(Simple Logging Facade for Java)兼容。SLF4J 是一个抽象层,允许开发者在不修改代码...
1. **SLF4J(Simple Logging Facade for Java)**:SLF4J 是一个为各种日志框架提供简单统一接口的抽象层,使得最终用户能够在部署时插入所需的日志框架,例如 Logback 或 Log4j。 2. **配置文件**:Logback 使用 ...
2. SLF4J绑定:logback是SLF4J(Simple Logging Facade for Java)的默认实现。SLF4J是一个抽象层,允许开发者在项目中灵活切换不同的日志框架,而无需修改代码。这意味着使用logback可以轻松地与其他SLF4J兼容的...
`logback-classic`扩展了`logback-core`,实现了Apache的SLF4J(Simple Logging Facade for Java)接口,使得用户可以在不改变代码的情况下切换不同的日志实现;`logback-access`则与Servlet容器集成,提供了对HTTP...
8. **slf4j-ext.jar**:这个扩展库包含了SLF4J的一些高级特性,如参数化日志、位置感知和MDC(Mapped Diagnostic Context)支持。 9. **不同版本的jar包**:可能包含不同版本的SLF4J及其绑定库,用于兼容不同版本的...
使用SLF4J的关键在于,通过在项目中引入`slf4j-api.jar`,然后根据实际需求选择合适的日志实现(如logback或log4j),并通过相应的适配器(如`slf4j-log4j12.jar`)桥接SLF4J接口与具体日志框架。这样,如果将来需要...
本文将深入探讨三个重要的Java日志框架——Log4j、Logback和SLF4J,并分析它们之间的关系和使用场景。 **Log4j** Log4j是Apache组织的一个开源项目,是Java世界中最先广泛使用的日志记录框架之一。它的核心功能...
logback-classic 是基于 logback-core 的日志实现,它实现了 SLF4J(Simple Logging Facade for Java)接口,这意味着你可以将 logback 与任何实现了 SLF4J 的日志库一起使用。logback-classic 还包含了对 Apache ...
4. **SLF4J API 支持**:logback-core 提供了对 Simple Logging Facade for Java (SLF4J) API 的底层实现,使得日志记录可以与具体日志实现解耦。 **logback-classic 模块** `logback-classic-0.9.24.jar` 是基于 ...
在本压缩包中,包含了 logback 的核心组件(logback-core)、经典组件(logback-classic)以及 Simple Logging Facade for Java (SLF4J) 的 API。 1. **logback-core**: logback-core 是 logback 的基础,它提供...
slf4j-logback-mdc-玩具tldr; 您的日志应为JSON。 不要使用Splunk解析日志行。 使用SLF4J,Logback和MDC的示例应用程序。 这是一个玩具。跑我./gradlew run
SLF4J(Simple Logging Facade for Java)是一个用于各种日志框架的简单抽象,例如java.util.logging、logback和log4j。它的主要目的是为应用程序提供一个可以在部署时插入特定日志实现的简单接口。SLF4J的API设计得...
- SLF4J提供了与各种日志实现的适配器,如Logback、Log4j等,因此MDC的功能可以无缝集成到这些日志框架中。 5. **日志拦截器**: - 在微服务或者Spring Boot应用中,可以使用AOP(面向切面编程)创建一个全局的...
SLF4J(Simple Logging Facade for Java)和Logback是Java世界中广泛使用的日志框架,它们在Spring MVC项目中扮演着至关重要的角色。SLF4J是一个接口层,为各种日志实现提供了一个统一的API,允许开发者在不修改代码...
这个“slf4j 1.6.1所有jar包”包含了SLF4J API和其他绑定实现,包括slf4j-api-1.6.1、slf4j-simple-1.6.1和slf4j-jdk14-1.6.1。这些组件协同工作,为Java应用程序提供灵活的日志记录能力。 **SLF4J API(slf4j-api-...
SLF4J(Simple Logging Facade for Java)是Java中的一种日志抽象层,它提供了一个简单的API,允许开发者在应用程序中使用各种日志框架,如Log4j、Logback等,而无需直接依赖特定的日志实现。SLF4J 1.7是其的一个...