log4j配置文件中的additivity属性

最新写程序,需要采用log4j来收集日志,这样就需要把程序运行日志和收集的日志区分开来。

开始一直没有找到可以配置log4j让其独立输出到指定日志文件,于是采用了划分Log4j的等级来解决这个问题;

具体实施方案是将父Logger的输出等级设置的高一点,而用来收集日志的Logger的输出等级设置低一点,采用trace方法来打日志;


后来找到了log4j的additivity属性:

 

它是 子Logger 是否继承 父Logger 的 输出源(appender) 的标志位。具体说,默认情况下子Logger会继承父Logger的appender,也就是说子Logger会在父Logger的appender里输出。若是additivity设为false,则子Logger只会在自己的appender里输出,而不会在父Logger的appender里输出。

 

使用例子:下面是一个log4j的配置文件,父logger是console与R,子logger是log4j.logger.mobileLogger

 

log4j.rootLogger=DEBUG,console,R


log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%-5p %d [%t] %c: %m%n




log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=/export/home/tomcat/mobile/tomcatLogs/tomcat.log
log4j.appender.R.DatePattern='.'yyyy-MM-dd
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%-5p %d [%t] %c: %m%n

log4j.logger.mobileLogger=TRACE,mobileLogger
log4j.additivity.mobileLogger=false
log4j.appender.mobileLogger=org.apache.log4j.DailyRollingFileAppender
log4j.appender.mobileLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.mobileLogger.DatePattern='.'yyyy-MM-dd-HH-mm
log4j.appender.mobileLogger.layout.ConversionPattern=%m%n
log4j.appender.mobileLogger.file=/export/home/tomcat/mobile/mobileLogs/mobile.log
log4j.appender.mobileLogger.encoding=UTF-8
  • 12
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值