2012-03-28 4 views
0

나는 프로젝트에서 일하고 있으며 우리는 log4j를 사용하여 우리의 로깅을 처리하려고한다. Log4j 문서 또는 온라인 설명서를 쉽게 볼 수없는 몇 가지 문제가 있습니다.많은 log4j 설정 질문들

로깅 코드를 코드베이스에 넣은 다음 속성 파일을 사용하여 기록 된 데이터를 appenders의 계층으로 분류하고 파일에 쓰는 방법을 알게되었습니다. 괜찮아. 이것은 기본적으로 내가 이와 같은 하나 개의 하드 코드 된 폴더에 greppable 로그 파일을 만들 수 있습니다 : 같은 내가 로그의 위치를 ​​동적 갖고 싶어, :

log4j.appender.R.File={$processDir}/example.log 

log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.File=example.log 

하지만 두 가지 기본적인 질문이

또한 사용자가이 앱을 실행할 때마다 폴더가 출력 파일로 만들어집니다. 로그 파일을 거기에 배치하고 싶습니다. 어떻게 수행 할 것인지 잘 모르겠습니다.

기타 문제 (첫 번째 문제가 해결되면 훨씬 쉽게 해결할 수 있다고 생각하지만 ...)는 앱이 어떻게 실행되었는지 프로세스를 반영하지 않는 형식의 로그를 만드는 것입니다. 예를 들어 , 제목, 모든 입력 파일 목록, 모든 출력 파일 목록, 발생한 모든 경고.

ObjectRenderer를 구현하고 원하는 정보를 제공하는 doRender 메서드를 작성하는 개체를 만들 것이라고 생각합니다.

소리가 맞습니까? 감사합니다.

답변

1

귀하는 시스템 특성으로 변수를 정의해야

log4j.appender.R.File=${processDir}/example.log 

이 구문 변수를 사용할 수있다 (들. -DprocessDir = ...) 또는 수동

System.setProperty("processDir",logDir); 
로 (폴더를 생성 한 후)