2014-11-11 4 views
0

WAR 파일에서 시작된 독립형 젠킨스 서버를 실행 중입니다. Jenkins는 자체 로깅을 위해 java.util.logging 프레임 워크를 사용한다고 광고합니다. 다음과 같이 나는 그것을 실행 :커스텀 java.util.logging 중복 로그 파일을 생성하는 특성 파일

handlers=java.util.logging.ConsoleHandler 
java.util.logging.ConsoleHandler.level=WARNING 
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter 

나는 모든 jenkins.log으로 만 경고 메시지를 이동 로그인 이상 기록하는 것입니다 예상 무엇 :

java -Djava.util.logging.config.file=mycustomlogging.properties -jar jenkins.war > jenkins.log 

mycustomlogging.properties는 다음과 같은 포함 .

jenkins.log의 내용은 예상대로이지만 INFO 이상에서 XML 형식의 로그 문을 포함하는 ~/java0.log 파일도 생성됩니다.

mycustomlogging.properties에서 ConsoleHandler (및 FileHandler 없음) 만 지정할 때 java0.log가 생성되는 이유는 무엇입니까?

내 등록 정보 파일이 ~/java0.log에 기록하는 FileHandler를 구성하는 (아마도) 구성하는 기본 시스템 1과 "병합"됩니까? 내 기대는 사용자 지정 속성 파일을 지정하면 기본 시스템 동작을 완전히 무시하는 것입니다.

아니면 서버 코드가 시스템 속성을 무시하고 "~ 상관없이 ~/java0.log"에 기록되도록 작성 되었습니까?

이 중요한 경우, 나는 단지 mycustomlogging.properties에서의 ConsoleHandler (없고의 FileHandler)를 지정할 때 왜 java0.log이 만들어지는

답변

0

자바 7을 사용하여 OS X 10.10에있어?

LogManager.reset() 또는 LogManager.readConfiguration (InputStream)을 수행하는 코드에서 등록 정보 파일을 찾지 못했거나 구성을 버리게되었을 수 있습니다.

~/java0.log에 기록하는 FileHandler를 구성하는 기본 시스템과 내 등록 정보 파일이 "병합"됩니까?

기본 LogManager에서는 병합을 사용할 수 없습니다. FileHandler를 직접 작성하고 추가하는 코드가 있어야합니다.

아니면 서버 코드가 시스템 속성을 무시하고 ~/java0.log에 "무슨 일이 있어도"기록됩니다.

예. LogManager.reset가 구성을 버립니다.

Groovy Hook Script을 구성하여 LogManager.reset()을 호출 한 다음 ConsoleHandler를 설치하십시오. 이 내용은 Jenkins logging wiki에 설명되어 있습니다.