在上篇文章的基础上,修改配置:
log4j.rootLogger=info,fout
log4j.appender.fout=org.apache.log4j.FileAppender
log4j.appender.fout.File=c:/a.log
log4j.appender.fout.layout=org.apache.log4j.PatternLayout
log4j.appender.fout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n
说明:rootLogger是可以多样式定义的,如log4j.rootLogger=info, myOut, fout。myOut, fout是自定义样式。这样就会在c盘下创建a.log文件。
有这样一种需求,不同模块需要各自创建日志,层与层之间单独写入日志,这样的话需要自定义日志类,在属性文件中写法如下:
log4j.logger.myTest1 = DEBUG,A1
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=c:/a/a.log
log4j.appender.A1.DatePattern='.'yyyy-MM-dd
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n
log4j.logger.additivity.myTest1 = false
log4j.logger.myTest2 = INFO,A2
log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.File=c:/b/b.log
log4j.appender.A2.DatePattern='.'yyyy-MM-dd
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n
Logger log2 = Logger.getLogger("myTest2");
log1.debug("1_debug");//不会在控制台输出,只会生成到文件中,因为有log4j.logger.additivity.myTest1 = false
log2.info("2_info");//控制台和文件都会写入日志
Logger log1 = Logger.getLogger("myTest1");