我正在寻找一个记录器配置,它可以输出从某个包到文件的所有内容以及 WARN 和更高级别的消息到控制台。为了实现这一点,我编写了以下 log4j.xml 文件:
<?xml version="1.0" encoding="UTF-8" ?>
<appender name="DIAGAPPDENDER" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${rpt.trace}/diagnostic.log"/>
</appender>
<appender name="ROOTAPPENDER" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
</appender>
<logger name="rpt.diagnostic">
<level value ="ALL" />
<appender-ref ref="DIAGAPPDENDER"/>
</logger>
<root>
<priority value ="WARN" />
<appender-ref ref="ROOTAPPENDER" />
</root>
但是,所有级别的日志消息不仅出现在文件中,而且出现在控制台中,这不是我需要的。我错过了什么? 谢谢。保罗。
最佳答案
很简单。您可以将 param
threshold 添加到您的 console appender
并设置将显示级别值等于或高于该级别的消息的任何级别。
<?xml version="1.0" encoding="UTF-8" ?>
<appender name="DIAGAPPDENDER" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${rpt.trace}/diagnostic.log"/>
</appender>
<appender name="ROOTAPPENDER" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="Threshold" value="WARN" />
</appender>
<logger name="rpt.diagnostic">
<level value ="ALL" />
<appender-ref ref="DIAGAPPDENDER"/>
</logger>
<root>
<priority value ="WARN" />
<appender-ref ref="ROOTAPPENDER" />
</root>
关于java - Log4j 显示级别不正确的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14727742/