Log4j NDC MDC】的更多相关文章

NDC(Nested Diagnostic Context)和MDC(Mapped Diagnostic Context)是log4j种非常有用的两个类,它们用于存储应用程序的上下文信息(context infomation),从而便于在log中使用这些上下文信息. NDC采用了一个类似栈的机制来push和pop上下文信息,每一个线程都独立地储存上下文信息.比如说一个servlet就可以针对每一个request创建对应的NDC,储存客户端地址等等信息.       当使用的时候,我们要尽可能确保…
在分布式系统或者较为复杂的系统中,我们希望可以看到一个客户请求的处理过程所涉及到的所有子系统\模块的处理日志. 由于slf4j/log4j基本是日志记录的标准组件,所以slf4j/log4j成为了我的重点研究对象. slf4j/log4j支持MDC,可以实现同一请求的日志追踪功能. 基本思路是: 实现自定义Filter,在接受到http请求时,计算eventID并存储在MDC中.如果涉及分布式多系统,那么向其他子系统发送请求时,需要携带此eventID. 源代码:https://github.c…
MDC与NDC除了存储方式(MDC采用MapNDC采用堆栈结构)有区别,其他都一样的 关键点 A -//引入log4j MDC类org.apache.log4j.MDC -//设置值 -MDC.put("fId", "safsdfsafasdCopyOflog4jServlet2"+index); B -配置log4j.porperties文件MDC取值格式 -log4j.appender.stdout.layout.ConversionPattern=%5p [%…
 NDC 介绍 NDC(Nested Diagnostic Context)是 Neil Harrison 在名为<Patterns for Logging Diagnostic Messages>的书中提出的嵌套诊断环境的机制.这种机制的提出,主要为了减少多线程的系统为每个客户单独记录日志的系统开销.在过去,区分两个客户的日志输出的常用方法是单独为每个客户机实例化新类别,但该方法会增加类别数量,并增加日志记录的管理开销.Neil Harrison 提出的方法就是把用户的上下文信息放到嵌套式诊…
本文转载上善若水的博客,原文出处:http://www.blogjava.net/DLevin/archive/2012/07/04/382131.html.感谢作者的分享. Layout负责将LoggingEvent中的信息格式化成一行日志信息.对不同格式的日志可能还需要提供头和尾等信息.另外有些Layout不会处理异常信息,此时ignoresThrowable()方法返回false,并且异常信息需要Appender来处理,如PatternLayout. Log4J自身实现了7个Layout类…
java 日志体系(四)log4j 源码分析 logback.log4j2.jul 都是在 log4j 的基础上扩展的,其实现的逻辑都差不多,下面以 log4j 为例剖析一下日志框架的基本组件. 一.总体架构 log4j 使用如下: @Test public void test() { Log log = LogFactory.getLog(JclTest.class); log.info("jcl log"); } log.info 时调用的时序图如下: 在 log4j 的配置文件,…
之前在项目中用的日志记录器都是log4j的日志记录器,可是到了新公司发现都是slf4j,于是想着研究一下slf4j的用法. 注意:每次引入Logger的时候注意引入的jar包,因为有Logger的包太多了...... Logger必须作为类的静态变量使用.原因如下: 1 使用static修饰的属性是归这个类使用的2 也就是说不论这个类实例化多少个,大家用的都是同一个static属性3 log4j记录的是当前类的日志,不是每个实例的日志4 所以只要有一个记录就可以了 创建日志记录器方法:(最好声明…
需求: 目前的程序中都是基于log4j来实现日志的管理,想要获取日志中的一部分消息,展示给用户. 约束: 由于程序中除了自己开发的代码,还会有层层依赖的第三方jar中的日志输出.需要展示给用户的消息,也有部分包括在第三方的包中.不可能去修改第三方jar来获得消息,所以只能从Log4j本身的消息入手,获取log4j的消息来进行处理. 方案: 第一步,增加新的logger log4j.rootLogger=INFO, console log4j.appender.console=org.apache…
(本章主要讲解Java里面比较核心的一块内容--异常处理,Java异常处理机制,一致都是比较复杂的一块,而很多时候如果写程序的时候能够适当地注意对应的一些异常处理情况,那么就会在开发过程节省一大部分时间,最常见的情况就是辅助进行调试以及维护工作以及提高系统的容错性和稳定性.这一章和前边类和对象章节不一样,这一章可能涵盖的内容没有前边那章多,但是我会尽量保证在整篇文章里面把开发过程中需要注意到的与异常有关的细节问题以及对应的开发经验写入本文,而本章的出发点是异常处理,核心内容还涵盖了测试.调试.以…
log4j中文文档  中文详细教程 log4j中文文档   这篇文章描述了Log4j的API.独一无二的特色和设计原理.Log4j是一个聚集了许多作者劳动成果的开源软件项目.它允许开发人眼以任意的粒度输出日志描述信息.它利用外部的配置文件,在运行时是完全可配置的.最厉害的是,log4j有一条平滑的学习曲线.当心:从用户的反馈表明,它是很容易上瘾的. 介绍 几乎每个大型的应用程序都包含有自己的日志记录或跟踪API.与这个原则一致,E.U. SEMPER项目决定写自己的跟踪API.这事发生在1996…