Учебники

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

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

уровень Описание
ВСЕ Все уровни, включая пользовательские уровни.
DEBUG Обозначает детализированные информационные события, которые наиболее полезны для отладки приложения.
ИНФОРМАЦИЯ Обозначает информационные сообщения, которые освещают прогресс приложения на крупном уровне.
WARN Обозначает потенциально вредные ситуации.
ОШИБКА Обозначает события ошибок, которые могут все еще позволить приложению продолжать работать.
FATAL Обозначает очень серьезные события ошибок, которые, вероятно, приведут к прекращению работы приложения.
OFF Максимально возможный ранг и предназначен для отключения регистрации.
TRACE Обозначает более мелкие информационные события, чем DEBUG.

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

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

В следующем примере показано, как мы можем отфильтровать все наши сообщения DEBUG и INFO. Эта программа использует метод ведения журнала 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