2010-08-18 2 views
2

내 log4j.properties 파일의 설정을 적용 할 수 없습니다. 여기 JBoss 5.0.1 : EAR에서 log4j.properties 파일이 적용되지 않습니다

# 
# The root logger is set to INFO by default. 
# This level can be changed programmatically at runtime. 
# 
log4j.rootLogger=INFO, stdout, file 
# use the hibernate appender for audit logs. 
log4j.logger.auditLogger.com.anfscd=INFO, hibernate, HBSS 
# Console appender. 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%-5p %d %c %x - %m %n 
log4j.appender.stdout.Threshold=WARN 
# Use this ConversionPattern to display thread. 
#log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n 
# Daily rolling file appender. 
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.File=c:/anfscd/log/anfscd-server.log 
log4j.appender.file.DatePattern='.'yyyy-MM-dd 
log4j.appender.file.layout.ConversionPattern=%-5p %d %c %x - %m %n 
# Use this ConversionPattern to display thread. 
#log4j.appender.file.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n 
# Hibernate appender 
log4j.appender.hibernate=com.anfscd.common.util.database.log.HibernateAppender 
log4j.appender.hibernate.sessionServiceClass=com.anfscd.cmd.model.util.persistence.HibernateHelper 
log4j.appender.hibernate.loggingEventClass=com.anfscd.cmd.model.audit.AuditLogRecord 
# direct log messages to windows system logs # 
log4j.appender.HBSS=org.apache.log4j.nt.NTEventLogAppender 
log4j.appender.HBSS.Source=Project Name 
log4j.appender.HBSS.layout=org.apache.log4j.PatternLayout 
log4j.appender.HBSS.layout.ConversionPattern=%-5p %d %c %x - %m %n 
# suppress org.hibernate messages 
log4j.logger.org.hibernate=ERROR, stdout 

내 보스입니다 :

다음

http://community.jboss.org/message/198690#198690

합니다 (EAR의 루트 디렉토리에) 내 log4j.properties 파일입니다 : 이미 다음 포럼 토론에서 조언을 따랐습니다 -app.xml ([귀]의/META-INF) :

<?xml version="1.0" encoding="UTF-8"?> 
<jboss-app> 
    <module-order>strict</module-order> 
    <loader-repository> 
    com.anfscd:loader=AnfscdLoader 
    <loader-repository-config> 
     java2ParentDelegation=false 
    </loader-repository-config> 
    </loader-repository> 
</jboss-app> 

우리는 지속성을 위해 최대 절전 모드를 사용하고 출력 콘솔에서 매우 자세한입니다. 오류가 없다면 Hibernate 콘솔 출력을보고 싶지 않습니다.

그런데 log4j-1.2.15.jar를 사용하고 있습니다.

답변

4

와우! 꼬리를 쫓는 것에 대해 이야기하십시오!

우선 JBoss 5.x에서 실행되는 Log4J는 EAR 루트에서 log4j.properties 파일을보고 처리합니다.

... 간섭 할 다른 요소가없는 경우에만. 예를 들어 log4j.properties와 함께 EAR의 루트에 log4j.xml을 패키지하는 경우 Log4J는 .properties 파일을 통해 .xml 파일을 기본값으로 사용합니다. log4j.xml에서 구성을로드하고 log4j.properties를 찾지 않아도됩니다.

아아, 그 특별한 시나리오는 내 문제가 아니 었습니다.

모든 것이 끝나면 내 문제는 자체 log4j.properties 파일이 포함 된 타사 JAR입니다. .xml 파일과 마찬가지로, Log4J가 하나의 log4j.properties를 가로 지르면 다른 것을 찾지 않아도됩니다. 글쎄, 어떤 이유로 JBoss 4.2.x에서 Log4J는 JAR에있는 것보다 EAR의 루트에있는 log4j.properties를 가져 왔습니다. 반대로 JBoss 5.x에서 Log4J는 log4j.properties 파일을 EAR의 루트가 아닌 JAR에서 가져 왔습니다.

제 3 자 JAR에서 log4j.properties 파일을 비 웠습니다. 모든 것이 매력처럼 작동합니다.

Log4J의 디버그 모드를 활성화하여 문제의 원인을 발견했습니다. 참고로 JBoss를 스위치 -Dlog4j.debug으로 시작하거나 jboss-log4j.xml의 log4j:configuration 태그에 debug="false"을 설정하여이 작업을 수행 할 수 있습니다.

0

AFAIK는 클래스 패스에 추가되지 않은 귀의 루트 폴더이며 보이지 않는 속성 파일입니다.

더 나은 장소는 일반적인 jar 파일의 루트 또는 기본 WAR 파일의 WEB-INF/클래스에 있어야합니다.

+0

EAR의 루트에 jndi.properties가 있으며 처리 중입니다. 그것이 저를 너무 혼란스럽게합니다. 하나의 특성 파일이 처리되고 다른 특성 파일이 무시되는 이유는 무엇입니까? –

+0

죄송합니다. 저는 지금 당신처럼 혼란 스럽습니다 ... FWIW Log4J가 사용하고 있던 설정 파일을 확인하려고 많은 시간을 보냈습니다 ... 귀하의 퀘스트에 행운을 빕니다! –

+0

땀 냄새가 없습니다. 공유해 주셔서 감사합니다. –

관련 문제