pardon, если вопрос слишком тривиален. Я совершенно новичок в log4j. Я видел, что есть два тега и теги, которые относятся к различным приложениям. Скажем, я хочу зарегистрировать информацию в моей базе кода в файле, отправить ее на электронную почту и распечатать ее на консоли. Я хочу, чтобы уровень был настроен на информацию. Разве это недостаточно, чтобы иметь один тег, который имеет ссылки на три приложения? (Файл, электронная почта и консоль), зачем нам нужен другой для этого?
Зачем нам нужен root и logger в log4j.xml
Ответ 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.