log4j: регистрация пакета, но исключая его подпакеты - PullRequest
3 голосов
/ 31 марта 2011

Привет! Я бы хотел исключить некоторые подпакеты из списка одного из моих регистраторов, так как они регистрируются другим регистратором. Например.

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

Я бы хотел, чтобы logger1 регистрировал только что-нибудь с com.mysite.app (включая com.mysite.app.utilities), а не logger2 и logger3. Как я мог это сделать?

(помощь в формате свойств, пожалуйста, формат XML для других ссылок для бонусных баллов)

Ответы [ 3 ]

6 голосов
/ 31 марта 2011

Я всегда думал, что log4j.logger.com.mysite.app = logger1 также заботится о регистрации сообщений из подпакетов в logger1.

Если вы действительно не хотите, чтобы сообщения logger2 и logger3 мешали сообщениям logger1, вам нужно установить их аддитивность на false.

log4j.additivity.com.mysite.app.news=false
log4j.additivity.com.mysite.app.events=false
2 голосов
/ 31 марта 2011

Попробуйте:

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 голосов
/ 22 сентября 2017

Для конфигурации 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>
...