设计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日志将不会出现在父loggerrootLogger中。
log4j.additivity默认值为true,默认是子logger日志会写入到父logger中。
相关推荐
chw0 2020-11-04
sdaq 2020-07-26
MrLiar 2020-07-07
sdaq 2020-06-16
丨Fanny丨Cri 2020-06-13
CXC0 2020-06-08
MrLiar 2020-06-04
丨Fanny丨Cri 2020-06-03
丨Fanny丨Cri 2020-05-17
JavaWinner 2020-05-10
JavaWinner 2020-05-04
CXC0 2020-04-20
CXC0 2020-04-10
丨Fanny丨Cri 2020-02-18
MrLiar 2020-02-16
CXC0 2020-02-09