2014-03-27 56 views
8

简单地说,当为这样的特定类添加Log4j配置时,制作additivity="true"additivity="false"的结果是什么?使log4j加法等于真或假的结果是什么?

<Logger name="com.mypage.glass.TryWindow" level="INFO" additivity="true"> 
    <AppenderRef ref="console"/> 
    <AppenderRef ref="file"/> 
</Logger> 

回答

15

默认情况下,记录器从其祖先继承appender。通过设置additivity="false",可以防止此行为。

在你的榜样,有可能是com.mypage.glasscom.mypage或者即使你没有该属性设置为false将被继承了根记录相关的附加目的地。

+1

但是在实际的文件上会发生什么...意思是如果我将它变为真或假在文件或控制台上的输出日志上会发生什么? – user3433510

+2

@ user3433510假设您的根记录器配置了ConsoleAppender,以便将所有INFO消息打印到控制台。如果你有'additivity =“true”'(默认),你的'com.mypage.glass.TryWindow'记录器也会输出到控制台。如果你想防止这种情况,你可以设置'additivity =“false”'。如果这些术语中的任何一个令人困惑,我建议您阅读[简要介绍log4j](https://logging.apache.org/log4j/1.2/manual.html)。 –