欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

log4j的配置 博客分类: java log4j.properties缺陷log4j 

程序员文章站 2024-03-21 09:16:47
...

log4j有两种配置方式,一种为.propertis,一种为xml

详细的说明:http://blog.csdn.net/anlina_1984/article/details/5313023

认真的读了一遍,感觉还有很多不懂。

log4j.prorpertis配置如下:

log4j.rootLogger = INFO, stdout , DEBUG , ERROR , INFO

log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.Threshold = DEBUG
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern =  %d %-5p [%C{1}:%L] %m%n

log4j.appender.INFO = org.apache.log4j.DailyRollingFileAppender
log4j.appender.INFO.File = ${log.home}/logs/web/info.log
log4j.appender.INFO.Append = true
log4j.appender.INFO.Threshold = INFO
log4j.appender.INFO.layout = org.apache.log4j.PatternLayout
log4j.appender.INFO.layout.ConversionPattern = %d %-5p [%C{1}:%L] %m%n

log4j.appender.DEBUG = org.apache.log4j.DailyRollingFileAppender
log4j.appender.DEBUG.File = ${log.home}/logs/web/debug.log
log4j.appender.DEBUG.Append = true
log4j.appender.DEBUG.Threshold = DEBUG
log4j.appender.DEBUG.layout = org.apache.log4j.PatternLayout
log4j.appender.DEBUG.layout.ConversionPattern = %d %-5p [%C{1}:%L] %m%n

log4j.appender.ERROR = org.apache.log4j.DailyRollingFileAppender
log4j.appender.ERROR.File = ${log.home}/logs/web/error.log
log4j.appender.ERROR.Append = true
log4j.appender.ERROR.Threshold = ERROR
log4j.appender.ERROR.layout = org.apache.log4j.PatternLayout
log4j.appender.ERROR.layout.ConversionPattern = %d %-5p [%C{1}:%L] %m%n

log4j.appender.SEARCH = org.apache.log4j.DailyRollingFileAppender
log4j.appender.SEARCH.File = ${log.home}/logs/web/search.log
log4j.appender.SEARCH.Append = true
log4j.appender.SEARCH.layout = org.apache.log4j.PatternLayout
log4j.appender.SEARCH.layout.ConversionPattern = %d %-5p [%C{1}:%L] %m%n

log4j.logger.org.springframework=INFO
log4j.logger.SEARCH=INFO,SEARCH

个人感觉log4j.properties设计的不是很合理,比如

1、上面文件的第一句log4j.rootLogger = INFO, stdout , DEBUG , ERROR , INFO

第一个INFO指的是日志级别,后面的是指appender。

2、在info.log中会打出error级别的日志,只有最小级别的限制(Threshold 控制),没有最大级别的限制,不想xml那么好(可能我没找到最大级别的,望大神指点,类似xml中的

            <param name="LevelMin" value="INFO"/>
            <param name="LevelMax" value="INFO"/>)

这样的话,info.log也会出现error的日志。

3、log4j.logger.org.springframework=INFO
      log4j.logger.SEARCH=INFO,SEARCH

第一个是指所有的org.springfamework.*包下的class的日志级别为INFO

第二个是指SERACH名称的info级别输出到appenderName为SEARCH也就是search.log

在代码里就是

private Logger searchLog = Logger.getLogger("SEARCH");

一般用于单独文件输出。

 xml就比较简单,一看就明白。建议使用xml作为项目的日志配置。