2011-03-31 154 views
3

嗨我想排除某些子軟件包被其中一個記錄器記錄,因爲它們正在被另一個記錄器記錄。例如。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記錄任何東西。我怎麼能這樣做?

回答

6

我總是認爲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

2

(以性能格式請,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 
0

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