如何通过配置log4j.xml来打印指定类或指定级别的日志信息
来源:互联网 发布:mac口红怎么海淘最便宜 编辑:程序博客网 时间:2024/05/17 04:26
把指定类的日志信息输出到指定appender里:
============================================================
<!--appender中,Theshold和Filter都是可选。不过,建议这种目的下最好不要写,这样,什么信息会输出到该appender中,就只由指定logger的appender-ref的值来决定。否则会受到Theshold和Filter值的影响)。-->
<appender name="appender-3" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="${loggingRoot}/file.log"/>
<param name="append" value="true"/>
<param name="encoding" value="GBK"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%p [%d{HH:mm:ss}] %c{1}.%M(%L) - %m%n"/>
</layout>
</appender>
<logger name="com.a.b.c.d.e" additivity="false">
<!--指定类的日志级别,会影响指定类日志发出信息的成功与否-->
<level value = "debug" />
<appender-ref ref="appender-3" />
</logger>
同样,在root元素里不要指定该appender,如下:
<root>
<level value="warn"/>
<appender-ref ref="appender-1"/>
<appender-ref ref="appender-2"/>
</root>
这样的话,就杜绝了被其他logger继承的可能性。
此例中,如果在root里指定了该appender,则级别不低于warn的日志信息都会输出到appender-3中。
把各个级别的日志信息输出到各个的appender里,可使用过滤器,下面以info级别为例:
============================================================
<appender name="appender-info" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="${loggingRoot}/info.log"/>
<param name="append" value="true"/>
<param name="encoding" value="GBK"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%p [%d{HH:mm:ss}] %c{1}.%M(%L) - %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<param name="LevelMax" value="INFO" />
</filter>
</appender>
appender-info只接受信息级别为info的日志信息。
再说说关于root的一些情况:
============================================================
root元素定义的一些信息只供作默认情况和继承用。
只要后面的logger或appender,稍作显式声明,这些信息都会被覆盖。
以下面为例:
<root>
<level value="warn"/>
<appender-ref ref="appender-1"/>
<appender-ref ref="appender-2"/>
</root>
默认情况是:
1. 输出器appender-1和appender-2只接受不低于warn级别的日志信息,不过一旦指定了Theshold或Filter,就以指定的为准。
2. 日志记录器logger的输出器appender,默认会输出到appender-1和appender-2中,若指定了<appender-ref value="appender-3" />,则日志信息会输出到这三个,要停止这种继承关系,可添加additivity=false。
log4j简明手册中的要点。
.1 Named Hierarchy
如果一个logger 的名字后面跟着一个点号(dot),它就是点号(dot)后面的那个logger的前辈( ancestor),是这个晚辈(descendant) 的前缀。如果在它自己和这个晚辈之间没有其它的前辈,它和这个晚辈之间就是父子关系。
.2 Level Inheritance
对于一个给定的logger C,它继承的级别等于logger阶层里,从C开始往root logger上去的第一个non-null级别。
.3 Basic Selection Rule
在一个级别为q(被指定的或继承的)的logger里,一个级别为p的日志请求,只有在p >= q 时才能够被执行。
.4 Appender Additivity
Logger C的log输出信息将被输出到C的所有appenders和它的前辈的 appenders。这就是"appender additivity"的意思。
但是,如果logger C的前辈,比如说P,P的additivity flag被设置为 false,那么,C的输出信息将被输出到C的所有appenders中去,以及它的前辈的——截 止在P那里,包括P在内的,appenders中去,但是不会输出到P的前辈的 appenders中去。
默认情况下,Loggers的additivity flag设置为true。
log4j简明手册:http://log4j.jaxmao.org/log4j/docs/manual.html
初次实施log4j,做了些小总结,期待交流哈。
- 如何通过配置log4j.xml来打印指定类或指定级别的日志信息
- 如何通过配置log4j.xml来打印指定类或指定级别的日志信息
- log4j配置把日志打印到指定的位置
- 项目使用log4j,指定日志打印出来的格式,打印到指定文件夹,每天打印一个日志等配置
- 如何设定指定logger的日志级别
- log4j自定义级别并将新级别日志信息输出到指定带日期格式的log文件
- log4j自定义级别并将新级别日志信息输出到指定带日期格式的log文件
- tomcat配置log4j打印输出日志到指定文件
- tomcat配置log4j打印输出日志到指定文件
- mybatis打印日志的log4j.xml配置
- mybatis打印日志的log4j.xml配置
- log4j指定包或类打到单独的日志文件的配置
- JAVA如何通过打印的信息跳到指定代码处
- Log4j 指定类记录日志
- log4j 指定某个包的输出级别
- log4j.xml打印日志信息(2)
- log4J 日志信息log4j.xml配置说明
- Log4j和logback冲突,导致log4j配置失效控制台一直打印DEBUG级别的日志
- 项目管理中的演讲艺术
- yinzi
- 数据库
- 使用struts2自定义拦截器,要引入defaultStack
- Ubuntu的Apache安装
- 如何通过配置log4j.xml来打印指定类或指定级别的日志信息
- 用eclipse运行项目时设置虚拟机内存大小
- ASP.NET页面HEAD区动态设置全攻略
- RHCE课程-RH033Linux基础笔记一之Linux起源、GNU简介、发行版本介绍及特点
- 稀疏文件
- C#调试出现的一些问题解决
- J2SE学习总结——基本语言学习完成之后的两个方向
- 软件项目管理学(SPM)的发展
- 读“怎么样把一个好的战术转化为实战”有感