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
干扰logger2
和logger3
的消息,您需要将其加设置为false
。
log4j.additivity.com.mysite.app.news=false
log4j.additivity.com.mysite.app.events=false
答
(以性能格式请,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>
嗨能否请你帮我如何实现与XML格式相同? – Patton 2011-12-29 07:11:53