log4j:记录一个软件包,但不包括它的子软件包

问题描述:

嗨我想排除某些子软件包被其中一个记录器记录,因为它们正在被另一个记录器记录。例如。log4j:记录一个软件包,但不包括它的子软件包

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

我喜欢会logger1只记录与com.mysite.app(包括com.mysite.app.utilities)不logger2和logger3记录任何东西。我怎么能这样做?

我总是认为log4j.logger.com.mysite.app = logger1照顾日志消息从也包装成logger1

如果你真的不想从那些logger1干扰logger2logger3的消息,您需要将其加设置为false

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

嗨能否请你帮我如何实现与XML格式相同? – Patton 2011-12-29 07:11:53

(以性能格式请,XML格式等的加分参考帮助)有一个尝试:

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 

对于XML配置:

<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>