首先,关于log4j的根记录器的定义是这样的,
log4j.rootLogger=DEBUG,CONSOLE,R
如果,我们有需要再定义一个子记录器,比如
log4j.logger.com.zy.service=DEBUG,R1
log4j.appender.R1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R1.Threshold = DEBUG
log4j.appender.R1.File=../logs/erongsoft_manage_service.log
log4j.appender.R1.Append=true
log4j.appender.R.DatePattern=yyyy-MM-dd'.log'
log4j.appender.R1.layout=org.apache.log4j.PatternLayout
log4j.appender.R1.layout.ConversionPattern=%-d %t %-5p [%c{1}:%L] %m%n
这个子记录器是记录对于com. zy.service包及其子包下的类的日志的,可是存在一个问题,默认情况下,子记录器是会继承到根记录器的appender,一个位置的日志,会同时在根记录器的appender和子记录器的appender都有记录。
我们需要只在子记录器上记录,根记录器不记录那个位置的记录该怎么做?
只要,加上 log4j.additivity 定义,这个属性表示子记录器是否继承根记录器的appender的标示位,默认是true,只要改为false,
子记录器就不会继承到根记录器appender,只能在子记录器的appender记录日志。
log4j.additivity.com.zy.service =false
转:https://blog.csdn.net/w420372197/article/details/7165967