2012-08-07 3 views
5

Websphere App Server에서 호스트되는 내 응용 프로그램에서 Logback을 사용 중입니다. 로그백은 System Out에 로그하도록 구성됩니다 (다른 파일은 다른 파일로 변경하는 것을 주저합니다). 문제는 Websphere가 System Out에 로깅하기 위해 자체 형식을 사용한다는 것입니다. 내 응용 프로그램의 수율 logger.debug("test")을 실행 :시스템 아웃 로그 아웃 로깅 로그가있는 Websphere

은 "O"까지 모든 것을 웹 스피어에 의해 추가
[8/7/12 12:27:55:629 CDT] 0000003a SystemOut  O DEBUG com.myapp... test 

. 나머지는 Logback에서입니다

다음 패턴을 사용하도록 Logback을 설정했습니다 : %-5level %logger{36} - %msg%n Websphere가 자체적으로 수행하는 타임 스탬프와 스레드 정보를 반복하지 않도록하기 위해 Logging을 설정했지만 여전히 완전히 성가시다. Logback에서 System Out으로 로깅을 사용자 정의하십시오.

로깅 우수 사례에 대해 많이 알지 못합니다. 전에는 웹 응용 프로그램으로 파일을 분리하여 기록했지만이 프로젝트에서는 System Out 파일이 제 3 자에 의해 모니터링되고 System Out을 사용해서는 안된다고 들었습니다. 이러한 요구 사항을 감안할 때 내 문제를 해결할 수있는 방법이 있습니까? Websphere에 내 시스템 출력 로깅을 방해하지 않겠습니까? 아니면 다른 파일 로깅을 시작하는 유일한 해결책입니까? 감사!

답변

2

형식을 변경할 수 없을 것이라고 생각합니다. 그리고 가능하다면, 어쨌든 현재 모니터링을 망칠 수도 있습니다.

동시에 두 개의 로거에 로그온하면 기존 모니터링의 경우 SystemOut, 더 읽기 쉬운 형식의 경우에는 사용자가 신경 쓰는지 궁금합니다.

+0

두 개의 로거를 사용하는 것이 좋습니다. dev 팀이 자체 로그 파일 하나와 모니터링 팀을 별도로 가지고 있으면 좋을 것입니다. –

3

로그백은 System.out에 메시지를 쓰도록 구성됩니다. 그러나 System.out에 기록 된 모든 내용은 WebSphere에 의해 경로 재 지정되고 WebSphere에 의해 생성되지만 심각도 표시기가 "O"인 로그 메시지와 동일한 형식으로 SystemOut.log 파일에 기록됩니다. 그것을 바꿀 수는 없습니다. 당신에게 사람들이 SystemOut.log 실제로 메시지가 올바른 범주 및 심각도와 해당 로그 수준으로 작성됩니다 있도록 변경 될 수있는 WebSphere의 로그 시스템을 사용하여 수행되는 로그를 확인해야합니다 것을 의미 사용할 가능성이

주 런타임에. WebSphere의 로그 시스템은 java.util.logging을 기반으로하므로 logback을 slf4j-jdk14로 대체하여 요구 사항을 충족시켜야합니다.

+0

그는 그 파일이 제 3 자에 의해 감시되기 때문에 SystemOut.log가 필요하다고 말했고 이는 놀라운 일이 아닙니다. 로그 파일을 직접 모니터링하는 외부 도구가 있지만 다른 도구를 통해 해당 파일을 모니터링 할 수 있습니다. (형식이 다른 경우 모니터링이 변경 될 수도 있지만 제 3 자에게 추가 파일을 모니터링하도록 설득 할 수 있다면 IMO가 더 좋을 것입니다.) – dbreaux