2012-09-26 5 views
0

Embedded Tomcat (버전 7.028)을 사용하고 있습니다. 내 Embedded Tomcat 서버는 하나 이상의 웹 응용 프로그램을 추가 할 수있는 구성 가능한 서버입니다.Embedded Tomcat 및 웹 응용 프로그램 용 Log4j가 다릅니다

Embedded Tomcat의 오류/정보 메시지를 하나의 로그 파일에 기록하고 Embedded Tomcat에 배포 된 모든 응용 프로그램에 대해 서로 다른 로그 파일을 유지하려고합니다. 임베디드 Tomcat의 클래스 경로에 log4j.properties 파일을 배치했습니다. 제대로 읽히고 Tomcat에 대한 정보와 오류 메시지를 기록 할 수 있습니다. 또한 임베디드 Tomcat의 모든 로거를 비 정적으로 선언했습니다.

웹 응용 프로그램의 WEB-INF/classes 위치에 log4j.xml을 넣어 Embedded Tomcat (Link 참조)의 log4j.properties를 덮어 씁니다. 그러나 log4j.xml이 시작되지 않습니다. Tomcat에서 log4j 설정 만 사용됩니다.

이 문제를 극복하는 방법을 알려주세요. xml 또는 특성 파일에 추가 할 수있는 구성이 있습니까?

+0

임베디드 톰캣의 모든 웹 애플리케이션에 단 하나의 클래스 로더 만 사용되고 있다는 것을 알았습니다. 클래스 로더가 하나뿐이기 때문에 처음에는 내장 된 Tomcat 서버에 의해 초기화 된 log4j가 작동하고 다른 웹 애플리케이션은 오버 라이드되지 않습니다. – haritejareddy

+0

다음과 같이 새로운 WebappLoader를 추가하려고 시도했습니다. '컨텍스트 context = tomcat.addWebapp ("/ myApp", "/ opt/test/myApp"); WebappLoader xcomLoader = 새 WebappLoader (context.getParentClassLoader()); addJarFileUrls (컨텍스트, 새 파일 (jarFilesDirectory)); context.setLoader (myLoader); myLoader.start(); ' 그러나 이것은 작동하지 않았습니다. 시작 메서드를 호출하면 오류가 발생합니다. 내가 뭔가 잘못하고 있는거야? 저를 올바른 방향으로 가르쳐주십시오. – haritejareddy

답변

0

각 웹 응용 프로그램에 log4j jar를 추가해보십시오. (WEB-INF/lib에 있음) 문제가 해결 될 수도 있습니다.