OwlFocus

log4j additivity 属性

log4j additivity属性

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<Properties>
<Property name="logDir">${log4j:configParentLocation}/../logs/</Property>
<Property name="debugFileName">debug</Property>
<Property name="infoFileName">info</Property>
<Property name="warnFileName">warn</Property>
<Property name="errorFileName">error</Property>
<Property name="businessFileName">business</Property>
</Properties>
<Appenders>
<RollingFile name="info-out" fileName="${log4j:configParentLocation}/../logs/info.log"
filePattern="${log4j:configParentLocation}/../logs/info-%d{yyyy-MM-dd}-%i.log">
<PatternLayout pattern="%d{yyyy.MM.dd HH:mm:ss} %c %L - %m%n" />
<SizeBasedTriggeringPolicy size="10240KB" />
<DefaultRolloverStrategy max="99" />
<Filters>
<ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL" />
<ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL" />
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY" />
</Filters>
</RollingFile>
<RollingFile name="business-out" fileName="${logDir}/${businessFileName}.log"
filePattern="${logDir}/backups/business/$${date:yyyy-MM}/${businessFileName}-%d{yyyy-MM-dd}-%i.log">
<PatternLayout pattern="%d{yyyy.MM.dd HH:mm:ss} %c %L - %m%n" />
<SizeBasedTriggeringPolicy size="10240KB" />
<DefaultRolloverStrategy max="200" />
<Filters>
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY" />
</Filters>
</RollingFile>
</Appenders>
<Loggers>
<Root level="INFO">
<AppenderRef ref="info-out" />
</Root>
<Logger name="business-info" additivity="false" level="INFO">
<AppenderRef ref="business-out" level="INFO" />
</Logger
</Loggers>

将business-info的Logger中additivity=”false”配置成false,再输出日志时,business-info日志就不会在info-out中重复输出。