关于 log4j.additivity

为避免重复打印日志,浪费磁盘空间,务必在log4j.xml中设置additivity=false;
如:
  <logger name="com.testinc.contacts.config" additivity="false" />

 

log4j.additivity是 子Logger 是否继承 父Logger 的 输出源(appender) 的标志位。具体说,默认情况下 子Logger 会继承 父Logger 的appender,也就是说 子Logger 会在 父Logger 的appender里输出。若是additivity设为false,则 子Logger 只会在自己的appender里输出,而不会在 父Logger 的appender里输出。 
如: 
log4j.rootLogger=INFO, stdout,logfile 
log4j.logger.com.ambow.upgrade=INFO, dataSync 

 

则com.ambow.upgrade包及其子包下的Logger不光在Appender dataSync里输出,也会在rootLogger的Appender stuout和logfile中输出; 
若想让com.ambow.upgrade包及其子包下的Logger只在Appender dataSync中输出,则在log4j.properties中添加下行即可: 
log4j.additivity.com.ambow.upgrade=false 

posted on 2019-05-16 15:13  小夏coding  阅读(707)  评论(0编辑  收藏  举报

导航