2010-11-22 5 views
3

SLF4J 로깅 외관을 사용하는 Java 웹 응용 프로그램이 있습니다. 현재까지 Log4J 구현을 사용합니다 (Logback으로 전환하는 것을 고려하고 있습니다). Log4J는 현재 클래스 경로의 루트에있는 log4j.xml 구성 파일을 통해 구성됩니다.Spring에서 JNDI를 통해 로그 파일 위치 제어?

우리는 JNDI를 사용하여 응용 프로그램의 다른 측면을 구성하므로이를 설정하고 JNDI에서 스프링 구성 파일로 문자열을 가져 오는 방법에 대해 잘 알고 있습니다.

그러나 Spring 구성 파일에서 Log4J appender를 작성하는 방법을 알아 내려고합니다. 더 나아가, Spring을 통해 Log4J를 완전히 구성하고 log4j.xml 구성 파일을 생략 할 수 있습니까? 이 작업을 프로그래밍 방식으로 수행하지 않아도되기를 바랍니다.

Log4jWebConfigurer이라는 스프링 클래스를 발견했는데, WAR가 폭발적으로 실행되어야합니다. (도움이 필요하다면 필요하지 않습니다.) 또한 로그 파일이 웹 앱 디렉토리 내에 있습니다 (확실히 원하지 않습니다. 그).

답변

2

먼저 JNDI를 통해 주요 디렉토리 얻을 :

<bean id="log4jInitialization" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> 
    <property name="targetClass" value="org.springframework.util.Log4jConfigurer" /> 
    <property name="targetMethod" value="initLogging" /> 
    <property name="arguments"> 
     <list> 
      <value>#{ myAppHome + '/conf/log4j.xml'}</value> 
     </list> 
    </property> 
</bean> 
:

<jee:jndi-lookup id="myAppHome" jndi-name="myAppHome" /> 

가 그런 다음 다음과 같은 방법으로 스프링 표현 언어 문에 그 콩을 사용합니다

관련 문제