2010-04-01 2 views
3

Я видел, что один из наших инструментов использует ConsoleAppender для System.err рядом с System.out в его конфигурации log4j. Фрагменты конфигурации:Конфигурация Log4j: 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?

ответ

2

Это может быть полезно в зависимости от того, как перенаправляются стандартные и ошибки. Часто стандартный выход отключается (например, перенаправляется на/dev/null), поэтому выход ошибки является единственным способом отображения сообщений об ошибках.

Я подозреваю, что PuTTY на самом деле это делает - было бы очень необычно отключать stderr, но не stdout. Я полагаю, что ваш CONSOLE_ERR установлен на уровень ERROR или WARN. В этом случае вы можете проверить с PuTTY, отображаются ли только сообщения об ошибках или все они, чтобы решить, какой результат вы видите на самом деле.

+0

ahum, я пропустил уровень WARN, PuTTY отображает stderr – Gerard

Смежные вопросы