2010-01-08 2 views
1

최대 절전 모드를 사용하는 jboss 컨테이너에서 실행중인 응용 프로그램이 있습니다. 그러나 최대 절전 모드가 수행하는 로깅 문제가 있습니다. 나는 Hibernate가 초기화 할 때 이러한 시작 메시지를 얻는다 :최대 절전 모드 로깅 제어

2010-01-08 17:23:42,017 INFO [Configuration:1403] - Configuration resource: /hibernate.cfg.xml 
2010-01-08 17:23:42,070 INFO [Configuration:1541] - Configured SessionFactory: null 

등등. 그러나 쓸모없는 정보이므로 제거하고 싶습니다. 내 log4j.properties에 다음과 같은 구성을 가지고

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d %-5p [%c{1}:%L] - %m%n 

log4j.rootCategory = error, stdout 

# Hibernate 
log4j.logger.org.hibernate=error 
log4j.logger.org.hibernate.tool.hbm2ddl=fatal 

들 - ConversionPattern에 지정된 형식과 일치 않는 기록을 볼 수 있듯이. 그러나 나는 아직도 INFO 메시지를 받고있다. 나는 또한 Asterisk-Java API 사용하고 있습니다 : 만 오류가 발생할 수로

# Asterisk java 
log4j.logger.org.asteriskjava=error 

제대로 작동 않습니다 :

2010-01-08 17:31:46,948 ERROR [AgiConnectionHandler:156] - AgiException running AgiScript com.**** on Asterisk-Java DaemonPool-1-thread-2 org.asteriskjava.fastagi.AgiException: Number is on blacklist 

그래서 지금은 조금 혼란 스러워요.

업데이트

-Dlog4j.debug 

과 용기를 실행 내가 얻을 :

log4j: Reading configuration from URL jar:file:*******.jar!/log4j.properties 
log4j: Parsing for [root] with value=[error, stdout]. 
log4j: Level token is [error]. 
log4j: Category root set to ERROR 
log4j: Parsing appender named "stdout". 
log4j: Parsing layout options for "stdout". 
log4j: Setting property [conversionPattern] to [%d %-5p [%c{1}:%L] - %m%n]. 
log4j: End of parsing for "stdout". 
log4j: Parsed "stdout" options. 
log4j: Parsing for [org.hibernate.tool.hbm2ddl] with value=[error]. 
log4j: Level token is [error]. 
log4j: Category org.hibernate.tool.hbm2ddl set to ERROR 
log4j: Handling log4j.additivity.org.hibernate.tool.hbm2ddl=[null] 
log4j: Parsing for [org.hibernate] with value=[fatal]. 
log4j: Level token is [fatal]. 
log4j: Category org.hibernate set to FATAL 
log4j: Handling log4j.additivity.org.hibernate=[null] 
log4j: Parsing for [org.asteriskjava] with value=[error]. 
log4j: Level token is [error]. 
log4j: Category org.asteriskjava set to ERROR 
log4j: Handling log4j.additivity.org.asteriskjava=[null] 
log4j: Finished configuring. 

다른 파일이 전혀 들어 있지되고있다. 그래서 왜 작동하지 않는지 궁금합니다.

Logger.getLogger("org.hibernate").setLevel(Level.ERROR); 

없음 성공 중 ...

답변

1

다른 로깅 구성 어딘가에 당신을 대체 할 수있는 것 같은데 : 또한 내가 세션 공장을 작성하기 전에 다음과 같은 시도했다. 컨테이너의 시작 경로에 시스템 변수 -Dlog4j.debug을 추가하여 log4j가 디버깅 정보를 출력하도록하면, 디버깅 정보가 표시되므로 정확히 어떤 파일을 사용하여 구성했는지 알 수 있습니다. 클래스 경로에있는 다른 파일을 대신 사용하고있을 가능성이 있습니다.

또한, 당신이 정말로 생산 환경의 어떤 종류에 %의 L를 사용하지 않아야합니다 - the Javadoc explicitly warns against this :

%의 L : 출력 로깅 요청을 일으킨 곳에서 줄 번호를 사용
.
경고 발신자 위치 정보를 생성하는 속도가 매우 느립니다. 실행 속도가 문제가되지 않는 한 사용을 피해야합니다.

+0

나는 그 생각에 대해 몇 가지 생각을했으며, 나는 당신의 제안을 시도 할 것입니다. % L 문제를 알고 있습니다. 제작/개발을 위해 파일을 따로 가지고 있습니다. –

+0

제안 결과로 내 질문을 업데이트했습니다. –