日志写入到文件、多文件写入

在上篇文章的基础上,修改配置:

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");

你可能感兴趣的:(apache,C++,c,log4j,C#)