设计log4j某个类的日志输出到某个日志文件

有时为了做业务分析,我们需要针对某个产品业务线,做日志监控,要做特定的日志输出,比如:
用flume监控某个日志文件,然后分析某个业务的业务量,这个时候就需要要求log4j对单独某个类输出的日志,单独生成一个log文件,以下是log4j的配置文件



#保存某个类的日志到单独的log文件
log4j.logger.com.app.MyClass=debug,info
log4j.appender.info=org.apache.log4j.RollingFileAppender
log4j.appender.info.File=E:/temp/myclass.log
log4j.appender.info.MaxFileSize=10MB
log4j.appender.info.MaxBackupIndex=3
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n
log4j.additivity.com.app.MyClass=false


这里发挥关键作用的是log4j.additivity这个设置。log4j.additivity是 子Logger 是否继承 父Logger 的 输出源(appender) 的标志位。具体说,默认情况下 子Logger 会继承 父Logger 的appender,也就是说 子Logger 会在 父Logger 的appender里输出。若是additivity设为false,则 子Logger 只会在自己的appender里输出,而不会在 父Logger 的appender里输出。

在上面展示的log4j配置中,子logger就是com.app.MyClass,而父logger是rootLogger,设置log4j.additivity 为false之后,子logger日志将不会出现在父logger rootLogger中。

log4j.additivity 默认值为true,默认是子logger日志会写入到父logger中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值