我尝试登录文件,如果从特定包调用日志记录,则以其他方式登录到控制台。因此,我将两个记录器的可加性设置为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的日志仍然会记录到控制台。有谁知道这里的问题是什么?