Учебники

log4j — Конфигурация

В предыдущей главе объяснялись основные компоненты log4j. В этой главе объясняется, как вы можете настроить основные компоненты, используя файл конфигурации. Конфигурирование log4j включает в себя назначение уровня, определение Appender и указание объектов Layout в файле конфигурации.

Файл log4j.properties — это файл конфигурации log4j, в котором свойства хранятся в парах ключ-значение. По умолчанию LogManager ищет файл с именем log4j.properties в CLASSPATH .

  • Уровень корневого логгера определяется как DEBUG . Отладка прикрепляет к нему аппендиат по имени X.

  • Установите приложение с именем X в качестве допустимого приложения.

  • Установите макет для приложения X.

Уровень корневого логгера определяется как DEBUG . Отладка прикрепляет к нему аппендиат по имени X.

Установите приложение с именем X в качестве допустимого приложения.

Установите макет для приложения X.

log4j.properties Синтаксис:

Ниже приведен синтаксис файла log4j.properties для приложения X:

# Define the root logger with appender X
log4j.rootLogger = DEBUG, X

# Set the appender named X to be a File appender
log4j.appender.X=org.apache.log4j.FileAppender

# Define the layout for X appender
log4j.appender.X.layout=org.apache.log4j.PatternLayout
log4j.appender.X.layout.conversionPattern=%m%n

Пример log4j.properties

Используя приведенный выше синтаксис, мы определяем следующее в файле log4j.properties :

  • Уровень корневого логгера определяется как DEBUG , приложение DEBUG с именем FILE .

  • ФАЙЛ appender определяется как org.apache.log4j.FileAppender . Он записывает в файл с именем log.out, расположенный в каталоге журнала .

  • Определен шаблон макета % m% n , что означает, что за напечатанным сообщением журнала будет следовать символ новой строки.

Уровень корневого логгера определяется как DEBUG , приложение DEBUG с именем FILE .

ФАЙЛ appender определяется как org.apache.log4j.FileAppender . Он записывает в файл с именем log.out, расположенный в каталоге журнала .

Определен шаблон макета % m% n , что означает, что за напечатанным сообщением журнала будет следовать символ новой строки.

# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE

# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out

# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n

Важно отметить, что log4j поддерживает подстановку переменных в стиле UNIX, например, $ {variableName}.

Уровень отладки

Мы использовали DEBUG с обоими наложителями. Все возможные варианты:

  • TRACE
  • DEBUG
  • ИНФОРМАЦИЯ
  • WARN
  • ОШИБКА
  • FATAL
  • ВСЕ

Эти уровни объяснены позже в этом уроке.

Appenders

Apache log4j предоставляет объекты Appender, которые в первую очередь отвечают за печать сообщений журнала в разные пункты назначения, такие как консоли, файлы, сокеты, журналы событий NT и т. Д.

Каждый объект Appender имеет различные свойства, связанные с ним, и эти свойства указывают поведение этого объекта.

Имущество Описание
расположение Appender использует объекты Layout и связанный с ними шаблон преобразования для форматирования информации журнала.
цель Целевой объект может быть консолью, файлом или другим элементом в зависимости от приложения.
уровень Уровень необходим для управления фильтрацией сообщений журнала.
порог Appender может иметь пороговый уровень, связанный с ним, независимо от уровня регистратора. Appender игнорирует все сообщения журнала, уровень которых ниже порогового уровня.
фильтр Объекты Filter могут анализировать информацию журналирования за пределами соответствия уровня и решать, обрабатывать ли запросы журналирования конкретным Appender или игнорировать.

Мы можем добавить объект Appender в Logger, включив следующий параметр в файл конфигурации следующим способом:

log4j.logger.[logger-name]=level, appender1,appender..n

Вы можете написать ту же конфигурацию в формате XML следующим образом:

<logger name="com.apress.logging.log4j" additivity="false">
   <appender-ref ref="appender1"/>
   <appender-ref ref="appender2"/>
</logger>

Если вы хотите добавить объект Appender в вашу программу, вы можете использовать следующий метод:

public void addAppender(Appender appender);

Метод addAppender () добавляет Appender к объекту Logger. Как показывает пример конфигурации, можно добавить множество объектов Appender в регистратор в список через запятую, каждый из которых печатает информацию журналирования по отдельным адресатам.

В нашем примере выше мы использовали только один appA FileAppender . Все возможные варианты приложения:

  • AppenderSkeleton
  • AsyncAppender
  • ConsoleAppender
  • DailyRollingFileAppender
  • ExternallyRolledFileAppender
  • FileAppender
  • JDBCAppender
  • JMSAppender
  • LF5Appender
  • NTEventLogAppender
  • NullAppender
  • RollingFileAppender
  • SMTPAppender
  • SocketAppender
  • SocketHubAppender
  • SyslogAppender
  • TelnetAppender
  • WriterAppender

Мы бы рассмотрели FileAppender в разделе « Вход в файлы», а JDBC Appender — в разделе « Вход в базу данных» .

раскладка

Мы использовали PatternLayout с нашим appender. Все возможные варианты:

  • DateLayout
  • HTMLLayout
  • PatternLayout
  • SimpleLayout
  • XMLLayout

Используя HTMLLayout и XMLLayout, вы можете создавать журналы в HTML, а также в формате XML.

Форматирование форматирования

Вы научитесь форматировать сообщение журнала в главе « Форматирование журнала» .