2014-09-12 1 views
3

내 이클립스 클래스 경로에이 두 로그 파일이 있습니다 (각각 src/main/resourcessrc/test/resources).이클립스에서 log4j2.xml 및 log4j2-test.xml

log4j2-test.xml은 우선 순위가 높으며 응용 프로그램을 실행할 때 항상 선택된 구성 파일입니다. 단위 테스트를 실행할 때 이클립스가 log4j2-test.xml을 무시하고 log4j2.xml을 사용하고 log4j2-test.xml으로 폴백하도록하려면 어떻게해야합니까?

+0

Maven을 사용하고 있습니까? – cy3er

+1

예 maven을 사용하고 있습니다. -Dlog4j.configurationFile = "파일 : C : \ blah ... \ src \ main \ resources \ log4j2.xml" –

답변

0

junit setup() 메소드에서이 아래 명령문을 실행할 수 있습니다.이 파일은 실행중인 패키지와 동일한 패키지에 있어야하며 그렇지 않으면이 파일의 전체 경로를 제공 할 수 있습니다.

PropertyConfigurator.configure("log4j2-test.xml"); 
+2

이것은 log4j-1.2 API입니다. log4j2와 함께 작동하지 않습니다. –

-1

는 log4j2에서 당신은 가정

org.apache.logging.log4j.LogManager ctx = (org.apache.logging.log4j.LogManager) LogManager.getContext(true); 
ctx.setConfigLocation(LoggerTest.class.getClassLoader().getResource("log4j2-test.xml").toURI()); 

다음 log4j2-test.xml의이 클래스 경로에 쓸 수 있습니다.