2013-09-08 2 views
1

웹 응용 프로그램에서 logj 2를 사용하려고합니다. log4j를 1.x에서, 우리는 환경에 따라 다른 구성 파일을-설정하고환경에 따라 다른 log4j2.xml 구성 정의

DOMConfigurator.configureAndWatch (logConfigFile, 지연) 같은 호출을 사용하여 적절한 구성을로드 ServletContextListener를 사용;

구성 파일 위치를 전달하십시오.

log4j2 구성 파일에 대해 동일한 작업을 수행 중이지만 thisthis에 따르면 log4j2와 함께 DOMConfigurator를 사용할 수 없거나 사용하지 않는 것이 좋습니다.

내 질문은 : log4j 2 환경에 따라 다른 구성 파일을 어떻게 사용할 수 있습니까?

답변

0

Remko Popma 덕분에 질문을 게시하고 log4j 사용자 메일 링리스트에서 답변을 얻었습니다. 'log4jconfiguration'context-param과 함께 System 속성 또는 환경 변수를 사용하여 런타임에 구성 파일을 동적으로 설정할 수 있습니다.

+0

게시물이나 댓글을 공유 할 수 있습니까? 나는 비슷한 유스 케이스는 내가 – Gowtham

+0

이 (http://apache-logging.6191.n7.nabble.com/Defining-different-log4j2-xml-configurations-based-on-environment-td40639.html#를 해결하기 위해 노력하고 있습니다 a40662는 내가 회신에서 언급 한 게시물이다. – adbdkb

1

여러 설정 파일을 갖는 달성하기 위해 무엇을 원하는가? 각 웹 응용 프로그램에 대해 별도의 로그 파일을 갖고 싶습니다. 당신이 이것을 달성 할 수

한 가지 방법은 RoutingAppender을 사용하고 있습니다; 이것은 ThreadContextMap에 설정된 키/값에 따라 로그 이벤트를 다른 appender로 위임 할 수 있습니다. 어떤 사람들은 웹 앱 이름을 값으로 사용합니다.

베타 -9 (GA 이전의 마지막 베타)는 곧 출시 될 예정이며 웹 응용 프로그램에서 log4j2를 사용하는 데 더 좋은 문서가 될 것입니다. FAQ에는 자세한 RoutingAppender 예제가 있습니다.

귀하의 질문에 대한 답변이 있습니까?

+0

응답 해 주셔서 감사합니다. 아니, 여기에 각 웹 응용 프로그램에 대해 별도의 로그 파일을 만들려고하지 않고 각각의 환경에 대한 별도의 구성 파일을 사용합니다. 예를 들어 dev 및 UAT에서는 DEBUG를 가질 수 있지만 PROD에서는 디버그 할 수 없거나 큰 dev 및 uat의 파일 크기는 있지만 prod는 아닙니다. 이 질문에서 언급 한 것처럼, 버전 1에서 우리가하는 일은 log4j-dev.xml, log4j-prod.xml 등이 있고 서블릿 컨텍스트 리스너와 env 변수가있어 코드를 변경하지 않고도, 내가 env에 응용 프로그램을 배포 할 때 올바른 설정 – adbdkb

+0

이 나타납니다. 이미 가능할 수도 있습니다. 그렇지 않으면 새로운 기능으로 요청할 수 있습니다. 어쨌든 사용자 메일 링리스트에서이를 제기하려고합니다. –

0

Servlet 3.x 컨테이너에있는 경우 Log4j2 권장 사항 log4j-web jar를 다른 것으로 사용하고 웹 응용 프로그램의 log4j2 usage manual에 설명 된대로 컨텍스트 매개 변수를 설정합니다.