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