2013-08-16 2 views
0

Logger.getRootLogger().getAppender("CONSOLE")은 클래스에서 null을 반환하지만 콘솔에 기록 할 수 있습니다. getAllAppenders() 또한이 클래스에서 NullEnumeration을 반환합니다.log4j 디버그는 구성된 부속 장치에 로깅하지 않습니다.

다른 클래스 (MyClass) 로깅 수준 : DEBUG | 가법 성 : 참 | 부모 : 루트 | getAllAppenders() : NullEnumeration 하지만 log.debug는 콘솔에 아무것도 인쇄하지 않습니다. 이 클래스 log4j 구성은

<logger name="com.xxx.service.impl.MyClass"> 
    <level value="TRACE"/> 
</logger> 

디버그 메시지가없는 여러 가지 방법으로 만 헛되이 인쇄하기 이유 디버깅을 시도입니다.

이 클래스에 대한 log4j 구성을 어떻게 확인할 수 있습니까? 문제점은 무엇이 될 수 있습니까? 도와주세요. u는 각 클래스는 하나 개의 log4j 파일의 로그를 기록 할 수 있는지 거짓 가산 매개 변수를 설정해야합니다 처음에는

+1

이 매개 변수 "-Dlog4j.debug = true"가 있습니다. 이것을 추가하고 함께 실행하십시오. 시작시 log4j 등록 정보 파일이 있는지 알려줍니다. – Neron

+0

@Neron이 (가) 귀하의 의견을 보내 주셔서 감사합니다. Log4J 디버그 로그 로거가 내 의도 된 구성 파일 (log4j.xml)을 사용하고 있으며 모든 애 퍼더가 제대로 초기화되었습니다 (적절한 로그 파일을 사용하는 파일 첨부자). 일부 클래스는 모든 애펜더 및 일부 클래스에 로그를 인쇄 할 수 있습니다. MyClass logger에 대해서도 특정 appender-ref를 추가했습니다. 변경하지 않았습니다. – pavan

답변

0

web.xml에서 아래 listener를 추가하면 내 problem.It이 내 원하는 log4j.xml을 구성하고 log4j가 잘 기록됩니다.

<context-param> 
     <param-name>log4jConfigLocation</param-name> 
     <param-value>classpath:log4j.xml</param-value> 
    </context-param> 

    <!-- applies log4j configuration --> 
    <listener> 
     <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
    </listener> 
1

:.

log4j.additivity $가 {APPENDARNAME}는 거짓

그리고 확인 = 하나의 log4j 기술 만이 앱과 함께로드됩니다 (기본 스태프는 log4j 만 사용하는 것이 좋습니다)

log4j.xml 또는 log4j.properties 파일은 클래스 경로 폴더 아래에 있지 않지만 원하는 것은 적재되다. 이것이 가능성이라면, 응용 프로그램에서 응용 프로그램을 사용하도록 강요하십시오. 봄 :

관련 문제