log4j配置文件

原创
2016/03/22 08:51
阅读数 108

    对于log4j的使用,就是学习如何编写合适的配置文件,因此只要理解了配置文件,log4j基本上就不会有什么问题。

    log4j的配置文件简单来说是用来描述如下三个问题:

    • 采集哪些数据

    • 采集到什么地方

    • 以何种格式输出

    只要描述上述三个问题,一个log4j的配置基本就算完成了。首先来看看第一个问题,采集哪些数据。

log4j.rootLogger = debug, D, E
log4j.logger.com.test=DEBUG, F, G , H
# 输出debug信息
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender   //每天产生一个日志文件
log4j.appender.D.File = /home/abely/logs/debug.log                    //输出文件位置,及文件格式
log4j.appender.D.Append  = true                                                    //每次输出在结尾添加
log4j.appender.D.layout = org.apache.log4j.PatternLayout        //输出布局方式,此处方式应与文件格式对应
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%t:%r]-[%p] %m%n        // 因为是自定义布局所以,此处是格式

 如上是一个非常简单的配置文件,在解释之前,先介绍log4j的几个默认日志级别all<trace<debug<info<warn<error<fatal,分别对应代码中的

      log.trace("Trace Message!");
      log.debug("Debug Message!");
      log.info("Info Message!");
      log.warn("Warn Message!");
      log.error("Error Message!");
      log.fatal("Fatal Message!");

log4j.rootLogger=日志级别,自定义变量名。 如果有多个变量用 , 分隔。log4j.rootLogger代表的是全局设置。还可以像下面一句一样,log4j.logger.[package name],表示该包下面的类输出级别。上述配置,将输出所有debug级别以上的信息,包括debug。

下面介绍一下如何将每种级别的日志分离,不同级别的日志输出到不同的文件。

log4j.rootLogger = debug, D, E
log4j.logger.com.test=DEBUG, F, G , H
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = /home/abely/logs/debug.log
log4j.appender.D.Append  = true
log4j.appender.D.filter.a=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.D.filter.a.LevelToMatch=debug
log4j.appender.D.filter.a.AcceptOnMatch=true
log4j.appender.D.filter.b=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.D.filter.b.LevelToMatch=info
log4j.appender.D.filter.b.AcceptOnMatch=false
log4j.appender.D.filter.c=org.apache.log4j.varia.LevelMatchFilter
log4j.appender.D.filter.c.LevelToMatch=error
log4j.appender.D.filter.c.AcceptOnMatch=false
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%t:%r]-[%p] %m%n

此配置文件和上述不同的是,加了四个个过滤器,将debug保留,其他的过滤。如果将D换为F,则只将test包下面的debug信息输出出来。

参考来源:http://wiki.jikexueyuan.com/project/log4j/overview.html

http://stackoverflow.com/questions/11243778/log4j-properties-levelmatchfilter-doesnt-work


展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
3 收藏
2
分享
返回顶部
顶部