Java/Swing 응용 프로그램에서 우리는 System.out 및 System.err을 새 출력이 발생할 때마다 열리는 별도의보기 ("SystemOutView")로 리디렉션했습니다 . 이 예외는 throw 된 예외 및 System.out.println()
에 잘 적용됩니다. 이 뷰는 속성 파일을 통해 구성 될 수 있습니다 (즉, 활성화되어 있고 출력시 열리는 지 여부).log4j 1.2.15 및 System.out 및 System.err 리디렉션
이 프로젝트에서 우리는 log4j 1.2.15를 사용하고 있습니다. Log4j 출력이 STDOUT으로 보내 졌음에도 불구하고 SystemOutView가 인스턴스화되기 전에 이미 일부 로깅이 발생하고 System.out 및 System.err이 리디렉션되기 전에 SystemOutView로 리디렉션되지 않는 것으로 나타났습니다. 즉
:
는- 리디렉션은 System.out 및 System.err에는
이 ... 잘 작동 ("...")
하지만 :
- someLogger.debug ("...")
- 리디렉션은 System.out 및 System.err에는 ("...")
- someLogger.debug을 SystemOutView하기
... 작동하지 않음 : 두 번째 로그 명령문이 첫 번째 것과 같이 STDOUT으로 이동하고 SystemOutView로 리디렉션되지 않습니다.
SystemOutView를 특성 파일을 통해 구성 할 수 있기 때문에 SystemOutView가 인스턴스화되기 전에 모든 작업이 완료되므로 일부 로그 문이 발행 될 가능성이 큽니다. 따라서 로그 출력을 SystemOutView로 재지 정하는 것은 불가능합니다.
어떻게해야합니까? 사전
에서
많은 고맙습니다 :