Как направить вывод журнала исключительно на разные регистраторы с Log4J - PullRequest
0 голосов
/ 02 апреля 2012

Я бы хотел использовать Log4J для отправки вывода очень специфического характера в журнал, отличный от указанного для всего остального.Сейчас у меня есть log4j.properties, который выглядит примерно так:

log4j.rootLogger=INFO,catchall
log4j.logger.SPECIAL_LOGGER=INFO,specials
... catchall, specials appenders defined

Я хочу ТОЛЬКО вывод из Logger SPECIAL_LOGGER в приложении specials - достаточно просто - но я НЕ хочувывод из SPECIAL_LOGGER в моем catchall приложении.Я думаю, это означает, что я не могу делать то, что мне нужно, с уровнями журнала.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 02 апреля 2012

Просто установите соответствующую аддитивность.Добавьте эту строку в вашу конфигурацию log4j.

log4j.additivity.SPECIAL_LOGGER=false
0 голосов
/ 02 апреля 2012

Я использовал это в своем приложении, чтобы оно работало.Вам нужно создать отдельный appender в вашем log4j.xml, что-то вроде этого может помочь:

<appender name="myAppender" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="file" value="logs/date.log" />     
    <param name="append" value="true" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{HH:mm:ss z} %-5p [%c{1}] [%t] %C:%L - %m%n" />
    </layout>
</appender>

Используя разные параметры в appender, вы можете настроить его по-своему.

...