log4j - Уровни регистрации

В org.apache.log4j.Levelуровни. Вы также можете определить свои собственные уровни, выделив подклассыLevel класс.

Уровень Описание
ВСЕ Все уровни, включая настраиваемые.
ОТЛАЖИВАТЬ Обозначает подробные информационные события, которые наиболее полезны для отладки приложения.
ИНФОРМАЦИЯ Обозначает информационные сообщения, которые на крупном уровне освещают ход выполнения приложения.
ПРЕДУПРЕЖДЕНИЕ Обозначает потенциально опасные ситуации.
ОШИБКА Обозначает события ошибки, которые могут позволить приложению продолжить работу.
ФАТАЛЬНЫЙ Обозначает события очень серьезных ошибок, которые предположительно приведут к прерыванию работы приложения.
ВЫКЛ. Максимально возможный ранг и предназначен для отключения регистрации.
TRACE Обозначает более подробные информационные события, чем DEBUG.

Как работают уровни?

Запрос журнала уровня p в логгере с уровнем q является enabledесли p> = q. Это правило лежит в основе log4j. Предполагается, что уровни упорядочены. Для стандартных уровней у нас есть ALL <DEBUG <INFO <WARN <ERROR <FATAL <OFF.

В следующем примере показано, как мы можем фильтровать все наши сообщения DEBUG и INFO. Эта программа использует метод logger setLevel (Level.X) для установки желаемого уровня ведения журнала:

В этом примере будут напечатаны все сообщения, кроме Debug и Info:

import org.apache.log4j.*;

public class LogClass {
   private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class);
   
   public static void main(String[] args) {
      log.setLevel(Level.WARN);

      log.trace("Trace Message!");
      log.debug("Debug Message!");
      log.info("Info Message!");
      log.warn("Warn Message!");
      log.error("Error Message!");
      log.fatal("Fatal Message!");
   }
}

Когда вы компилируете и запускаете LogClass программа, это сгенерирует следующий результат -

Warn Message!
Error Message!
Fatal Message!

Установка уровней с помощью файла конфигурации

log4j предоставляет вам настройку уровня на основе файла конфигурации, которая освобождает вас от изменения исходного кода, когда вы хотите изменить уровень отладки.

Ниже приведен пример файла конфигурации, который будет выполнять ту же задачу, что и мы, используя log.setLevel(Level.WARN) в приведенном выше примере.

# Define the root logger with appender file
log = /usr/home/log4j
log4j.rootLogger = WARN, 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

Давайте теперь использовать нашу следующую программу -

import org.apache.log4j.*;

public class LogClass {

   private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class);
   
   public static void main(String[] args) {
   
      log.trace("Trace Message!");
      log.debug("Debug Message!");
      log.info("Info Message!");
      log.warn("Warn Message!");
      log.error("Error Message!");
      log.fatal("Fatal Message!");
   }
}

Теперь скомпилируйте и запустите вышеуказанную программу, и вы получите следующий результат в /usr/home/log4j/log.out файл -

Warn Message!
Error Message!
Fatal Message!