Автор оригинала: Pankaj Kumar.
В учебнике log4j мы рассмотрели , как использовать конфигурацию на основе xml log4j. Но log4j.xml является подробным, поэтому платформа log4j предоставляет возможность считывать конфигурацию из файла свойств в.
Поскольку файл свойств не имеет определенной схемы для проверки, мы должны быть более осторожны с ним. Сегодня мы увидим, как конфигурации XML могут быть преобразованы в конфигурацию на основе свойств.
Корневой Регистратор
Корневой регистратор используется, когда нет совпадения с регистратором. Он определен, как показано ниже, в XML.
Его можно определить в файле свойств, как показано ниже.
log4j.rootLogger=DEBUG, file, console
Первое значение в списке, разделенном запятыми, – это значение корневого уровня ведения журнала. Все остальные значения являются добавками.
Приложение Log4j
У нас может быть несколько приложений в log4j. Ниже приведены два приложения, одно для ведения журнала консоли, а другое для файла.
В файле log4j.properties они будут определены, как показано ниже.
#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.appender.{имя приложения}.{appender_config}
. Обратите внимание, что конфигурации приложений, такие как MaxFileSize
, MaxBackupIndex
, такие же, как в файле конфигурации XML.
Регистраторы Log4j
Так же, как и у приложений, у нас может быть несколько регистраторов. Например, конфигурация на основе xml;
Они будут определены в файле свойств как log4j.logger.{имя_логгера}
. Значения содержат уровень ведения журнала и список используемых приложений.
#Define loggers log4j.logger.com.journaldev.log4j=WARN, file, console log4j.logger.com.journaldev.log4j.logic=DEBUG, file, console
Аддитивность регистратора Log4j
Использование аддитивности показано в приведенной выше конфигурации xml регистратора, это атрибут элемента регистратора. Ниже приведен способ его использования в конфигурации файла свойств log4j как log4j.additivity.{имя пользователя}
.
#setting additivity log4j.additivity.com.journaldev.log4j=false log4j.additivity.com.journaldev.log4j.logic=false
Исходя из вышесказанного, ниже приведен мой окончательный файл log4j.properties.
#Define root logger options log4j.rootLogger=DEBUG, file, console #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 #Define loggers log4j.logger.com.journaldev.log4j=WARN, file, console log4j.logger.com.journaldev.log4j.logic=DEBUG, file, console #setting additivity log4j.additivity.com.journaldev.log4j=false log4j.additivity.com.journaldev.log4j.logic=false
Конфигуратор свойств Log4j
PropertyConfigurator
используется для настройки параметров log4j. Это необязательно, если имя файла log4j.properties и он находится в пути к классу проекта. Мы должны настроить его перед использованием регистратора.
Вот простая программа, показывающая, как настроить и использовать ведение журнала log4j.
package com.journaldev.log4j.main; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; import com.journaldev.log4j.logic.MathUtils; public class Log4jExample { static{ init(); } private final static Logger logger = Logger.getLogger(Log4jExample.class); public static void main(String[] args) { logger.debug("My Debug Log"); logger.info("My Info Log"); logger.warn("My Warn Log"); logger.error("My error log"); logger.fatal("My fatal log"); } /** * method to init log4j configurations */ private static void init() { PropertyConfigurator.configure("log4j.properties"); } }
Когда он будет выполнен, вы получите ниже в журнале консоли.
WARN Log4jExample - My Warn Log ERROR Log4jExample - My error log FATAL Log4jExample - My fatal log
В то же время вы увидите, что журналы создаются в файле main.log, как показано ниже.
2016-05-14 00:34:11,994 +0530 [main] WARN (Log4jExample.java:20) - My Warn Log 2016-05-14 00:34:11,995 +0530 [main] ERROR (Log4jExample.java:21) - My error log 2016-05-14 00:34:11,995 +0530 [main] FATAL (Log4jExample.java:22) - My fatal log
Обратите внимание, что отладка и регистратор информации не печатаются, поскольку минимальный уровень ведения журнала установлен как ПРЕДУПРЕЖДЕНИЕ. Это все для примера использования файла свойств log4j. Счастливого Входа в систему!