Log4j日志分文件打印配置规则

Log4j日志分文件打印配置规则

在实际工作中经常会碰到不同的日志要打印到不同的文件中,配置方法说明:

log4j.rootLogger=INFO,CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d;%p;%c{1};%m%n

log4j.logger.com.wangdc=DEBUG,wangdc

log4j.appender.wangdc = org.apache.log4j.RollingFileAppender
log4j.appender.wangdc.File = ${catalina.base}/logs/wangdc.log
log4j.appender.wangdc.Append = true
log4j.appender.wangdc.MaxFileSize = 50MB
log4j.appender.wangdc.MaxBackupIndex = 100
log4j.appender.wangdc.layout = org.apache.log4j.PatternLayout
log4j.appender.wangdc.layout.LocationInfo = true
log4j.appender.wangdc.layout.ConversionPattern=%d;%p;%c;(%t);%m%n

log4j.logger.akka=DEBUG,akka
log4j.appender.akka = org.apache.log4j.RollingFileAppender
log4j.appender.akka.File = ${catalina.base}/logs/akka.log
log4j.appender.akka.Append = true
log4j.appender.akka.MaxFileSize = 10MB
log4j.appender.akka.MaxBackupIndex = 100
log4j.appender.akka.layout = org.apache.log4j.PatternLayout
log4j.appender.akka.layout.LocationInfo = true
log4j.appender.akka.layout.ConversionPattern=%d;%p;%c;(%t);%m%n

以上配置实现如下效果:
com.wangdc包及子包中的debug以上日志打印到wangdc.log;
akka包及子包中的日志debug打印到akka.log;
所有info以上日志都会打印到控制台


如何实现更灵活的配置呢?
分析上述配置文件 :
1、如果类名为com.wangdc.*,会匹配到以下两条appender:

log4j.rootLogger=INFO,CONSOLE
log4j.logger.com.wangdc=DEBUG,wangdc

则日志打印到控制台和wangdc.log
2、如果类名为akka.*,与1同理
3、其他类,只匹配rootLogger,只会打印到控制台。

如果配置文件修改一下:

log4j.rootLogger=INFO,CONSOLE,wangdc
log4j.logger.com.wangdc=DEBUG

则:
1、com.wangdc包及子包中的debug以上日志打印到wangdc.log以及控制台(log4j.logger.com.wangdc会覆写rootLogger);
2、所有info以上日志打印打印到wangdc.log以及控制台,包括akka包中的类,此时akka包中的类会同时打印到两个文件 (其他类会匹配到rootLogger,发现有两个appender,Console和wangdc);

如果配置文件再修改一下:

log4j.rootLogger=INFO,CONSOLE,wangdc,akka
log4j.logger.com.wangdc=DEBUG
log4j.logger.akka=DEBUG

则:
1、所有info以上的日志都会同时打印到控制台、wangdc.log、akka.log.
2、com.wangdc包及akka包的debug以上的日志会同时打印到控制台、wangdc.log、akka.log.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值