Уровни 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 —