2012-04-03 6 views
6

저는 아파치 커먼즈 라이브러리와 log4j를 사용하고 있습니다. xml 구성 파일과 log4j.properties 파일이 있습니다. 내 xml 구성 파일 내 log4j 속성 경로를 지정하고 싶습니다.log4j 경고 문제 - 아파치 공유

//Loading my xml file 
this.config = new XMLConfiguration(this.xmlFileName); 

다음과 같은 경고가 제기하는이 순간 :

log4j:WARN No appenders could be found for logger (org.apache.commons.configuration.ConfigurationUtils). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 

그러나 나는 아직 log4j를 객체라고하지 않은 내가 어떻게 내 설정을로드합니다. 일단 내가 log4j 인스턴스와 함께 성공적으로 작업 할 수있는 XML 파일을 읽었습니다. 경고를 제거 할 방법이 있습니까? log4j.properties 파일이 클래스 경로에있는 경우

답변

1

의 Log4j 출력 로거 생성이 오류 있지만 펜더 (들)을 정의 (된다)된다. 실제로이 오류는 log4j가 초기화되기 전에 로거가 작성 될 때 발생합니다.

당신은 log4j 객체를 호출하지 않았다고 말합니다. 그러나 오류 메시지에서 org.apache.commons.configuration.ConfigurationUtils은 로거 객체를 만듭니다 (66 참조).

당신은, 초기화하기 전에 그것을 해제 How to turn off log4j warnings?

Logger.getRootLogger().setLevel(Level.OFF); 

가 초기화가 정상적으로 루트 로거의 로그 레벨을 설정하기 때문에 다시 켜 할 필요가 없어야합니다 볼 수 있었다.

+0

알았어, 'org.apache.commons.configuration.ConfigurationUtils'내부에서 LOG를 사용하지 못하게하거나 내 log4j 속성을 구성하여 내 xml 구성을 구성하는 방법이 있습니까? – PapaSmurf

4

확인

이 링크를 유용 할 수 있습니다 : http://www.coderanch.com/t/63230/open-source/log-log-WARN-No-appenders

+0

내가이 병에 다른 디렉토리에 외부 배치되어 있기 때문에, 클래스 패스 내 log4j.properties를 삽입하지 않습니다. 내 응용 프로그램 구성 파일에 지정된 경로를 사용하여 런타임에로드하려고합니다. – PapaSmurf

0

당신은 적어도 펜더와로드의 log4j의 루트 로거 로거 수준을 설정해야 구성 파일. 그렇지 않으면이 경고 메시지가 나타납니다. 루트 로거 펜더 및 로거 레벨을 설정

예 :

#Set root logger 's level and its appender to an appender called CONSOLE which is defined below. 
log4j.rootLogger=DEBUG, CONSOLE 

#Set the behavior of the CONSOLE appender 
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
log4j.appender.CONSOLE.layout.ConversionPattern=%d [%t] %-5p %c - %m%n 
0

나는이 해결 내 문제를 해결 :

//Disable log level 
Logger.getRootLogger().setLevel(Level.OFF); 

지금 내가 경고없이 내 XML 설정 파일을 읽을 수 있습니다. 설정된 로그 수준 후
:

Logger.getRootLogger().setLevel(Level.INFO); 
+0

내 게시물에서 내 의견에 제안한 해결책이 아닌가요? – ChrLipp