我看到我们的一个工具在它的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消息会去哪里?
答案 0 :(得分:2)
根据标准和错误输出的重定向方式,它可以使用。标准输出通常是静音的(例如重定向到/ dev / null),因此错误输出是实际显示错误消息的唯一方法。
我怀疑PuTTY实际上是这样做的 - 将stderr静音但不是stdout是非常不寻常的。我猜你的CONSOLE_ERR设置为ERROR或WARN级别。在这种情况下,您可以使用PuTTY检查是否只显示错误消息或是否显示错误消息,以确定您实际看到的是哪个appender的输出。