logback中MDC使用】的更多相关文章

今天在项目发现别人写了很多MDC.put("taskid", "testThread/heart/main_heart");或者MDC.put("taskid", "testThread/heart/send_heart");等. 自己就查询了哈MDC的使用.然后就在网上找了哈使用方法. 如果想在 log 里加上当前用户,找了一些文档,logback 支持 MDC(Mapped Diagnostic Contexts),可以很…
在SpringBoot项目中添加logback的MDC     先看下MDC是什么 Mapped Diagnostic Context,用于打LOG时跟踪一个“会话“.一个”事务“.举例,有一个web controller,在同一时间可能收到来自多个客户端的请求,如果一个请求发生了错误,我们要跟踪这个请求从controller开始一步步都执行到了哪些代码.有哪些log的输出.这时我们可以看log文件,但是log文件是多个请求同时记录的,基本无法分辨哪行是哪个请求产生的,虽然我们可以看线程,但线程…
logback Logback 的基本结构充分通用,可应用于各种不同环境.目前,logback 分为三个模块:Core.Classic 和 Access. Core模块是其他两个模块的基础.Classic 模块扩展了core模块.Classic 模块相当于 log4j的显著改进版.Logback-classic 直接实现了 SLF4J API,因此你可以在 logback 与其他记录系统如 log4j 和 java.util.logging (JUL)之间轻松互相切换.Access 模块与 Se…
可能看到这个标题,读者会问:要修改日志的级别,不是直接修改log.xxx就好了吗?为何要搞那么复杂呢?所以,先说一下场景,为什么要通过TurboFilter去动态的修改日志级别.我们在使用Java开发各种项目的时候必然的会引入很多框架,这些框架通过堆叠的方式完成所要提供的业务服务(一个服务请求在进入后会在这些框架中兜一圈,然后返回结果),当一个比较底层的框架在处理过程中抛出了异常之后,这个异常会不断的向上传递.这个时候,有的框架直接throw,继续向上抛,而有的在throw之前还会自己打印一下e…
当我们需要对日志的打印要做一些范围的控制的时候,通常都是通过为各个Appender设置不同的Filter配置来实现.在Logback中自带了两个过滤器实现:ch.qos.logback.classic.filter.LevelFilter和ch.qos.logback.classic.filter.ThresholdFilter,用户可以根据需要来配置一些简单的过滤规则,下面先简单介绍一下这两个原生的基础过滤器. ch.qos.logback.classic.filter.LevelFilter…
守护线程在logback中的使用 先说问题,在java应用中,logback的异步Appender是怎么在主线程结束后,停下来的? 复盘 我在一个logback的测试用例中,写了这样的代码和logback的配置: // 一个测试类,main函数中简单的打印了几行日志 public class Test { private static final Logger LOGGER = LoggerFactory.getLogger(Test.class); public static void mai…
一.MDC介绍 MDC(Mapped Diagnostic Contexts)映射诊断上下文,该特征是logback提供的一种方便在多线程条件下的记录日志的功能, 某些应用程序采用多线程的方式来处理多个用户的请求.在一个用户的使用过程中,可能有多个不同的线程来进行处理.典型的例子是 Web 应用服务器.当用户访问某个页面时,应用服务器可能会创建一个新的线程来处理该请求,也可能从线程池中复用已有的线程.在一个用户的会话存续期间,可能有多个线程处理过该用户的请求.这使得比较难以区分不同用户所对应的日…
1.首先实现一个interceptor,在请求开始的时候MDC put一个Session标志,interceptor结束的时候remove掉 public class SessionInterceptor implements HandlerInterceptor { /** * 会话ID */ private final static String SESSION_KEY = "sessionId"; public boolean preHandle(HttpServletReque…
1. 参考资料 https://gist.github.com/logogin/ff44c254f655340b653c http://www.cnblogs.com/zhudongchang/p/6861375.html 2. 环境 Java: jdk1.8.0_144 Logback: 1.0.13 3. %X 的使用方法 %X用于输出和当前线程相关联的NDC(嵌套诊断环境),在代码中给org.slf4j.MDC添加key/value即可增加新值 示例 说明 %X 输出所有值 %X{test…
实例: <?xml version="1.0" encoding="UTF-8"?> <configuration debug="true" scan="true"> <!-- 定义日志文件名称,与工程名一致 --> <property name="APP_NAME" value="PAS_Backstage3" /> <!-- 定义…