配置Log4j:ConsoleAppender到System.err?

时间:2010-04-01 08:37:41

标签: console log4j

我看到我们的一个工具在它的log4j配置中使用了System.outr旁边的System.pr的ConsoleAppender。配置片段:

<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
        <!-- Log to STDOUT. -->
        <param name="Target" value="System.out"/>

...

<appender name="CONSOLE_ERR" class="org.apache.log4j.ConsoleAppender">
            <!-- Log to STDERR. -->
    <param name="Target" value="System.err"/>

在Eclipse中,这会导致向控制台发送双重消息,所以我认为没有用,对吧? 在Linux服务器上,我只看到一条到PuTTY控制台的消息,那么System.err消息会去哪里?

1 个答案:

答案 0 :(得分:2)

根据标准和错误输出的重定向方式,它可以使用。标准输出通常是静音的(例如重定向到/ dev / null),因此错误输出是实际显示错误消息的唯一方法。

我怀疑PuTTY实际上是这样做的 - 将stderr静音但不是stdout是非常不寻常的。我猜你的CONSOLE_ERR设置为ERROR或WARN级别。在这种情况下,您可以使用PuTTY检查是否只显示错误消息或是否显示错误消息,以确定您实际看到的是哪个appender的输出。