console - 配置 Log4j : ConsoleAppender to System. 错误?

标签 console log4j

我看到我们的一个工具在其 log4j 配置中的 System.out 旁边使用 ConsoleAppender 来处理 System.err。配置片段:

<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 消息会发送到哪里?

最佳答案

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

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

关于console - 配置 Log4j : ConsoleAppender to System. 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2559095/

相关文章:

Windows控制台

grails - 如何在grails应用程序中使用log4j?

java - log4j:WARN 请正确初始化 log4j 系统

java - 用不同的信息写入多个 log4j 文件

java - 在 log4j 中将 ConsoleAppender 替换为 FileAppender

logging - log4j 记录两次

c++ - 控制台获取按键 w/o windows 消息 c++

python - 为什么它总是返回 "theIndentationError: unexpected indent",而当我在终端中输入相同的代码时一切都很好?

powershell - Powershell输出列宽度

javascript - 在 HTML 中显示日志并显示缩进的更好方法是什么?