2012-12-07 4 views
4

다중 모듈 Maven 프로젝트에서 log4j를 구현하려면 어떻게해야합니까? "log4j.properties"파일을 모든 서브 모듈의 src/main/resources 디렉토리에 추가합니까? 그렇다면 각 파일 첨부 자마다 다른 출력 파일을 지정해야합니까? 또는 구성 악몽이없는 전체 프로젝트에 대해 하나의 중요한 log4j.properties 파일을 갖는 방법이 있습니다. 어떤 접근 방식 (많은 log4j.properties 파일 대 하나)이 더 보편적이고 더 나은 방법입니까? 모든 의견을 미리 보내 주셔서 감사합니다.다중 모듈 Maven 프로젝트의 log4j

+0

질문은 달성하고자하는 것이 무엇입니까? 프로덕션 환경에서 다른 프로젝트에 사용될 src/main/resources에 log4j.properties를 포함하는 별도의 maven 모듈을 생성 할 수 있습니다. 아니면 단위 테스트에 대해 이야기하고 있습니까? – khmarbaise

답변

3

이 프로젝트를 배포하고 실행할 방법에 따라 다릅니다. 계층 적 다중 모듈 프로젝트의 경우 일반적으로 프로그램을 시작하는 main 메소드가있는 log4j 구성 파일을 모듈에 포함 시켰습니다.

예를 들어 프로젝트 clientserver이 모두 공용 클래스 (RMI 인터페이스, 도메인 개체 등)에 framework에 의존하는 간단한 설치를 고려하십시오. 클라이언트는 데스크탑 응용 프로그램으로 실행되고 고유 한 main 진입 점을 가지며 따라서 src/main/resources 아래에 고유 한 log4j.properties 파일을 가져옵니다. 서버 모듈도 마찬가지입니다. 그러나 프레임 워크는 이 아니며은 속성 파일을 가져옵니다. 해당 로거 호출은 호출 모듈이 구성한 로거에 의해 처리됩니다.

+0

죄송합니다, 제가 언급 했어야합니다 - 나는 부두와 프로젝트를 실행하고 있습니다. jetty로 log4j를 구성하는 방법은 무엇입니까? 또한 부두가없는 단위 테스트를 실행할 수 있고 여전히 로그를 남기고 싶습니다. 또는 Tomcat으로 프로젝트를 실행하고 로그를 남겨 둡니다. 그것은 (분명히) webapp입니다. – ktm5124

+1

이후 버전의 log4j는 클래스 경로의 구성 파일을 감지해야합니다. src/main/resources 폴더에 넣으면됩니다. Jetty에 대해 다른 구성을 요구하지 않아야합니다. 일반적으로 JUnit 테스트에 로깅하지 않는 편이 좋다. src/test/resources에 다른 등록 정보 파일을 넣어서 테스트 특정 테스트를 사용하여 기본 구성을 무시할 수있다. –

관련 문제