Подтвердить что ты не робот

Зачем нам нужен root и logger в log4j.xml

pardon, если вопрос слишком тривиален. Я совершенно новичок в log4j. Я видел, что есть два тега и теги, которые относятся к различным приложениям. Скажем, я хочу зарегистрировать информацию в моей базе кода в файле, отправить ее на электронную почту и распечатать ее на консоли. Я хочу, чтобы уровень был настроен на информацию. Разве это недостаточно, чтобы иметь один тег, который имеет ссылки на три приложения? (Файл, электронная почта и консоль), зачем нам нужен другой для этого?

4b9b3361

Ответ 1

Этого достаточно.

В log4j регистратор связан с пакетом или иногда с определенным классом. Пакет/класс регистратора определяется атрибутом "имя". Журнал регистрирует сообщения в своем пакете, а также во всех дочерних пакетах и ​​их классах. Единственным исключением является корневой журнал, который регистрирует сообщения для всех классов в приложении.

Логгер также имеет уровень и может иметь к нему один или несколько добавлений (адресатов регистрации).

В следующем примере у нас есть два регистратора:

  • корневой журнал, который регистрирует сообщения с уровнем INFO или выше во всех пакетах для разных целей: консоль, электронная почта и файл,
  • "com.foo", который регистрирует сообщения с уровнем WARN или выше в пакете "com.foo" и его дочерние пакеты в другой файл.

    <log4j:configuration>
        <!-- Declaration of appenders FILE, MAIL, CONSOLE and ANOTHERFILE -->
        ...
        <!-- -->
    
        <logger name="com.foo">
            <level value="warn"/>
            <appender-ref ref="ANOTHERFILE" /> 
        </logger>
        <root> 
            <priority value ="info" />
            <appender-ref ref="FILE" /> 
            <appender-ref ref="MAIL" />
            <appender-ref ref="CONSOLE" /> 
        </root>
    </log4j:configuration>
    

Вы должны прочитать больше об основах log4j.