2011-12-02 3 views
1

로깅을 위해 log4j를 사용하는 여러 응용 프로그램이 있습니다. 각각의 로딩 설정은 클래스 경로에서로드 된 별도의 log4j.properties (디스크의 파일, .jar가 아닌 파일 또는 그것을 읽기 전용으로 만들 것입니다). 이러한 각 응용 프로그램에서 일반 UI를 통해 로그 수준을 업데이트 할 수 있습니다.응용 프로그램 내에서 log4j를 업데이트하고 log4j.properties를 업데이트했습니다.

저는 응용 프로그램간에 공유되는 공용 유틸리티 클래스를 사용합니다. 앱의 일생 동안 그렇게 할 수는 있지만, 변경 사항이 적절한 log4j.properties 파일에 저장되지 않기 때문에 다음에 다시 시작하면 속성 파일의 특정 레벨로 재설정됩니다.

방금 ​​클래스 경로에서로드되었으므로 각 응용 프로그램의 로그 파일에 대한 전체 경로를 알지 못합니다. 일반적인 클래스이므로 경로를 하드 코딩하지 않아도됩니다. log4j에서 변경 사항을 디스크에 저장하는 방법이 있습니까?

답변

2

머리에 문제가있는 것이 좋습니다.

항상 디스크의 log4j.properties 파일에 변경 사항을 기록한 다음 해당 파일의 변경 사항을 확인하고 적절한 로그 수준을 업데이트하는 수신기를 설치하십시오.

+1

알렉산더의 대답은 당신이 얻을 수있는만큼 좋을 것이라고 생각합니다. 그래도 네가 원하는 것보다 더 까다 롭다. Log4j는 PropertyConfigurator를 사용하여 속성 파일을 읽었지만 '쓰기'또는 '출력'메서드를 볼 수 없다는 것을 알고 있습니다. DOMConfigurator는 XML 버전이지만 다시 출력 방법을 볼 수 없습니다. – davidfrancis

관련 문제