Автор оригинала: Pankaj Kumar.
Приложения Log4j Предоставляют конфигурацию для ведения журнала, такую как консоль, файл, база данных и т.д. На рисунке ниже показана иерархия классов приложений log4j.
приложение log4j
Это основа приложений log4j, которая определяет методы, реализуемые приложением.
скелет приложения log4j
Этот класс предоставляет код для общих функций, таких как поддержка пороговой фильтрации и поддержка общих фильтров. Это базовая реализация, которая расширяется всеми другими приложениями, такими как JDBCAppender
, AsyncAppender
, ConsoleAppender
и т.д. В нем есть только один абстрактный метод добавление(событие LoggingEvent)
, который должен быть реализован всеми приложениями. Мы можем написать ваше собственное приложение, реализовав этот метод.
Обычно используемое приложение log4j
Некоторые из наиболее часто используемых приложений:
- ConsoleAppender : ConsoleAppender добавляет события журнала в System.out или System.err, используя макет, указанный пользователем. Цель по умолчанию-System.out. Это хорошо для целей отладки, но не очень полезно для использования в производственной среде.
- RollingFileAppender , Dailyrolling FileAppender : Это наиболее широко используемые приложения, которые обеспечивают поддержку записи журналов в файл.
RollingFileAppender
используется для ограничения размера файла журнала и количества сохраняемых файлов резервных копий.DailyRollingFileAppender
используется для входа в файлы на основе даты. Однако было замечено, что у Dailyrolling FileAppender возникают проблемы с синхронизацией и потерей данных, и его не рекомендуется использовать. - JDBCAppender : JDBCAppender обеспечивает отправку событий журнала в базу данных. Каждый вызов добавления добавляет в буфер ArrayList. Когда буфер заполнен, каждое событие журнала помещается в инструкцию sql (настраивается) и выполняется. Размер буфера, URL-адрес базы данных, Пользователь и пароль настраиваются стандартными способами log4j.
- AsyncAppender : AsyncAppender позволяет пользователям асинхронно регистрировать события. Приложение AsyncAppender будет собирать отправленные ему события, а затем отправлять их всем прикрепленным к нему приложениям. Вы можете прикрепить несколько приложений к AsyncAppender. Обратите внимание, что мы можем настроить его только с помощью XML, т. е.
DOMConfigurator
. Это полезно, когда вы создаете много журналов и вам все равно, регистрируются ли они мгновенно. Есть вероятность, что журналы будут потеряны в случае сбоя сервера. AsyncAppender использует отдельный поток для обслуживания событий в своем буфере. - JMSAppender : Простое приложение, которое публикует события в теме JMS. События сериализуются и передаются как объектное сообщение типа сообщения JMS.
Конфигурация XML-приложения Log4j
Ниже приведена конфигурация на основе XML обычно используемых классов ConsoleAppender и RollingFileAppender.
Вы можете проверить код классов приложений, чтобы узнать параметры, которые вы можете настроить. Например, в JDBCAppender вы можете настроить URL-адрес базы данных, пользователя базы данных, пароль базы данных и т.д.
Конфигурация свойств приложения Log4j
Простой пример, показывающий конфигурацию приложений через файл свойств. Он определяет всю вышеуказанную конфигурацию на основе xml.
#Define console appender log4j.appender.console=org.apache.log4j.ConsoleAppender logrj.appender.console.Target=System.out log4j.appender.console.layout=org.apache.log4j.PatternLayout log4j.appender.console.layout.ConversionPattern=%-5p %c{1} - %m%n #Define rolling file appender log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.File=logs/main.log log4j.appender.file.Append=true log4j.appender.file.ImmediateFlush=true log4j.appender.file.MaxFileSize=10MB log4j.appender.file.MaxBackupIndex=5 log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d %d{Z} [%t] %-5p (%F:%L) - %m%n
Это все для быстрого обзора приложения log4j.
Список литературы :
- log4j 1.2 javadocs
- учебник по log4j
- пример log4j.свойства