Log4j将可加性设置为false的重复日志记录

时间:2016-07-05 09:00:08

标签: java logging log4j

我尝试登录文件,如果从特定包调用日志记录,则以其他方式登录到控制台。因此,我将两个记录器的可加性设置为false,这两个记录器应该记录到文件中,因此这两个包的控制台上不会记录任何内容。我的log4j.xml如下:

<appender name="console" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out"/>
    <param name="Threshold" value="TRACE"/>
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{ISO8601} [%t] %-5p %c - %m%n"/>
    </layout>
</appender>

<appender name="file" class="org.apache.log4j.RollingFileAppender">

    <!-- Set your own log file location -->
    <param name="File" value="c:/temp/security-toolkit.log" />

    <!-- Specify the number of backup -->
    <param name="MaxBackupIndex" value="10"/>

    <!-- Specify the file size -->
    <param name="MaxFileSize" value="10MB"/>

    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%-5p[%X{event} %X{user_name}:%X{user_sid}@%X{user_last_host_address} -> /%X{application_name}/%X{module_name}] %m%n"/>
    </layout>
</appender>



<root>      
    <priority value="INFO"/>
    <appender-ref ref="console"/>
</root>

<logger name="com.foo.security" additivity="false">
    <level value="INFO" />
    <appender-ref ref="file"/>
</logger>

<logger name="org.foo.esapi" additivity="false">
    <level value="WARN" />
    <appender-ref ref="file"/>
</logger>

但是,来自com.foo.security的日志仍然会记录到控制台。有谁知道这里的问题是什么?

0 个答案:

没有答案