2011-03-31 2 views
3

안녕하세요, 다른 로거에서 기록한대로 특정 하위 패키지를 내 로거 중 하나에서 제외하고 싶습니다. 예 :log4j : 패키지를 로깅했지만 하위 패키지는 제외

com.mysite.app = logger1 
com.mysite.app.news = logger2 
com.mysite.app.events = logger3 

난 단지 logger2 및 logger3으로 기록되지 (com.mysite.app.utilities 포함) com.mysite.app 아무것도를 기록하는 logger1 싶습니다. 내가 어떻게 할 수 있니?

답변

6

을 서브 패키지도 logger1입니다. 당신이 정말로 logger1의 사람들을 방해 logger2logger3의 메시지를 원하지 않는 경우

, 당신은 false 자신의 가산을 설정해야합니다. XML 구성의

log4j.additivity.com.mysite.app.news=false 
log4j.additivity.com.mysite.app.events=false 
+0

안녕 당신이 XML 형식과 동일을 달성하는 방법에 대한 좀 도와 주시겠습니까? – Patton

2

(보너스 포인트의 다른 참조하시기 바랍니다 속성 형식, XML 형식의 도움을) 시도 유무 : 난 항상 log4j.logger.com.mysite.app = logger1가에서 로깅 메시지 처리한다라고 생각하는 데 사용

log4j.logger.com.mysite.app=info, stdout 
log4j.additivity.com.mysite.app=false 

log4j.logger.com.mysite.app.news=off, stdout 
log4j.additivity.com.mysite.app.news=false 

log4j.logger.com.mysite.app.events=off, stdout 
log4j.additivity.com.mysite.app.events=false 
0

:

<logger name="com.mysite.app.news" additivity="false"> 
    <appender-ref ref="logger2" /> 
</logger>  
<logger name="com.mysite.app.events" additivity="false"> 
    <appender-ref ref="logger3" /> 
</logger> 
관련 문제