1

我正在寻找一个记录器配置,它可以输出从某个包到文件以及 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>

但是,所有级别的日志消息不仅出现在文件中,而且出现在控制台中,这不是我需要的。我错过了什么?谢谢。保罗。

4

1 回答 1

4

这简单 。您可以添加param阈值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>
于 2013-02-06T11:49:13.633 回答