消除不必要的log4j设置输出

时间:2009-07-07 22:58:14

标签: java configuration log4j

我正在开发的应用程序中使用log4j,最终在Tomcat / JBoss中运行,但是现在我正在Eclipse内部运行它。我已将其配置为使用log4j.xml文件写入ConsoleAppender并将其作为系统属性传递,并且我的所有日​​志记录输出都有效。

问题是log4j吐出了一堆我真的不需要(或想要)看到的bootstrap / startup垃圾。例如:

log4j: Retreiving an instance of org.apache.log4j.Logger.
log4j: Setting [CoherenceMonitor] additivity to [false].
log4j: Level value for CoherenceMonitor is  [DEBUG].
log4j: Desired Level sub-class: [org.apache.log4j.Level]
log4j: CoherenceMonitor level set to DEBUG
log4j: Class name: [org.apache.log4j.ConsoleAppender]
log4j: Setting property [target] to [System.out].
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout"
log4j: Setting property [conversionPattern] to [%-5p  %m%n].
log4j: Adding appender named [console] to category [CoherenceMonitor].

每次运行我的程序时,我都会得到大约20行,而这只是噪音会掩盖我真正关心的日志数据。我想要做的是抑制此输出(以“log4j:”开头的所有内容)并且仅包含我自己的日志记录语句的输出。

我已尝试通过Google及其同事找到的所有内容,包括为org.apache类别设置优先级值,如下所示。 (无论我设置的优先级如何,我仍然可以获得输出。)

<category name="org.apache">
    <priority value="FATAL"/>
</category>

我是log4j配置的新手,我很简单。我只有一个appender,一个记录器和这一个类别。任何有关让log4j在设置时保持关闭的帮助将非常感激! : - )

2 个答案:

答案 0 :(得分:15)

这看起来像是记录器本身的调试。如果您使用XML配置,它看起来像这样:

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="true">

将调试设置为false。

答案 1 :(得分:3)

除了检查你的log4j.xml是否具有debug="true"属性外,还要确保你没有设置log4j.debug系统参数(在Eclipse中,这将作为JVM参数显示在运行配置中) -Dlog4j.debug)的值。