2010-04-01 6 views
3

우리 도구 중 하나가 log4j 구성에서 System.out 옆에 System.err에 ConsoleAppender를 사용하는 것을 보았습니다. 구성의 조각 :구성 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"/> 

이 콘솔에 이중 메시지 결과, 그래서 그건 바로, 아무 소용이라고 생각? Linux 서버에서 PuTTY 콘솔에 하나의 메시지 만 표시되므로 해당 System.err 메시지는 어디로 이동합니까?

답변

2

표준 및 오류 출력이 리디렉션되는 방식에 따라 사용할 수 있습니다. 종종 표준 출력이 음소거되어 (예 :/dev/null로 리디렉션 됨) 오류 출력이 실제로 오류 메시지를 표시하는 유일한 방법입니다.

나는 PuTTY가 실제로 그렇게한다고 생각합니다. stderr는 음소거하지만 stdout은 음소거하는 것은 매우 드뭅니다. CONSOLE_ERR이 ERROR 또는 WARN 레벨로 설정되어있는 것 같습니다. 이 경우 PuTTY를 사용하여 오류 메시지 만 표시되는지 또는 모두 표시되는지 확인하여 실제로 어떤 appender의 출력을 확인할지 결정할 수 있습니다.

+0

나는 WARN 수준을 간과했지만, PuTTY는 stderr를 표시합니다. – Gerard