2009-06-30 7 views
0

저는 JBoss 4.2.3.GA를 실행 중이며 Spring과 Log4j를 사용하는 웹 응용 프로그램을 가지고 있습니다. 저는 Spring의 Log4jConfigurer를 설정했지만, JBoss의 log4j 파일이 classpath에 없으므로 문제가 있습니다. jboss.home/server/defaul/conf/jboss-log4j.xml에 있습니다. 따라서 Log4jConfigurer에서 경로를 하드 코딩하지 않고 Spring에서 JBoss의 log4j 파일을 사용하려면 어떻게해야합니까?Spring, log4j 및 JBoss4

+0

내가 사용 : <콩 ID = "log4jInitialization"클래스 = "org.springframework.beans.factory.config.MethodInvokingFactoryBean"> <속성 이름을 = "targetClass" value = "org.springframework.util.Log4jConfigurer"/> –

+0

해결 방법을 찾으셨습니까? –

답변

0

일반적으로 응용 프로그램을 통해 JBoss의 log4j 구성을 수정하지 마십시오. 이것은 광기의 길입니다. JBoss는 모든 앱에서 공유 구성을 사용합니다.

그러나 log4j의 런타임 구성 (예 : 사용자 정의 애펜더 또는 로거 추가)을 프로그래밍 방식으로 변경할 수 있습니다. 이것은 Spring의 Log4jConfigurer가 아닌, 독립형 log4j 설정을 구성하기 위해 사용합니다.

+0

맞아요, 제 자신의 log4j.xml 파일을 사용하지 않고 JBoss의 jboss-log4j.xml 만 사용하고 appender와 카테고리를 추가하여 수정하려고합니다. 내가 손으로하는 것. 자, 내 웹 응용 프로그램에서 해당 파일을 읽거나 웹 응용 프로그램에서 Spring에 Log4jConfigurer를 통해 해당 파일을 읽고 구성에 사용하도록 요청합니다. –

+0

JBoss 내에 배포 된 모든 응용 프로그램은 자동으로 log4j 구성을 사용합니다. 그냥 응용 프로그램에서 log4j를 사용하고, 그냥 작동합니다. 응용 프로그램은 log4j 자체를 구성 할 필요가 없습니다. – skaffman

+0

일반적으로 그렇습니다. 그러나 봄에는 문제가 있습니다. 저는 spring.jar 파일 내에 log4j.xml이 있기 때문이라고 생각합니다. 그러므로 Spring에게 설정을위한 다른 곳을 찾아 보라고 지시해야합니다. http://firstpartners.net/kb/index.php/Spring_Pointer_to_Log4j_Configuration_File –

0

질문에 대답합니까? JBoss는 일반적으로 서버 디렉토리 및 구성 디렉토리를 가리키는 추가 시스템 등록 정보를 설정합니다. 응용 프로그램에서 액세스 할 수 있거나 Spring 컨텍스트에서 해결할 수 있어야합니다. 귀하의 경우에는

, ${jboss.server.home.dir}/conf/jboss-log4j.xml skaffman가 제대로 코멘트에서 지적

, 당신이 그렇지 않으면 포장에 뭔가를 적용하지 않은 보스 'log4j 구성을 읽어 봄을 구성 할 필요가 없습니다에 액세스 할 수 확인을해야 . log4j.[properties,xml]이 클래스 경로의 루트 어딘가에 존재하지 않거나 구성 요소가 Log4J를 "수동으로"구성하려고 할 때만 신경 써야합니다. 이 도울 수

희망,
Kariem