简体   繁体   English

Log4j显示级别不正确的消息

[英]Log4j displays messages with incorrect level

I am looking for a logger configuration that outputs everything from some package to file and WARN and higher messages to console. 我正在寻找一个记录器配置,输出从一些包到文件和WARN和更高的消息到控制台的所有内容。 To implement this i wrote following log4j.xml file: 为了实现这一点,我写了以下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>

However, log messages of all levels appears not only in file but also in console which is not what i need. 但是,所有级别的日志消息不仅出现在文件中,还出现在控制台中,这不是我需要的。 What i am missing? 我错过了什么? Thanks. 谢谢。 Paul. 保罗。

Its easy . 这很容易 。 You can add param threshold to your console appender and set any level where the message of level value equal or above that will be displayed . 您可以向console appender添加param阈值,并设置级别值等于或大于该值的消息将显示的任何级别。

<?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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM