log4j的配置

阅读更多

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中的

           
           

这样的话,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作为项目的日志配置。

 

 

你可能感兴趣的:(缺陷,log4j)