Что означает значение порога в Log4J?

Привет всем   У меня есть свойства log4j, как показано ниже. Все, что зарегистрировано в TextProcessor.log, находится над уровнем выше WARN. Я не понимаю порог, который установлен здесь для отладки. Может кто-нибудь объяснить, что пороговое значение

log4j.logger.TextProcessor=warn,TextProcessor


log4j.appender.TextProcessor=org.apache.log4j.RollingFileAppender
log4j.appender.TextProcessor.File=C:/project/logs/TextProcessor.log
log4j.appender.TextProcessor.MaxFileSize=10MB
log4j.appender.TextProcessor.MaxBackupIndex=10
log4j.appender.TextProcessor.Threshold=debug
log4j.appender.TextProcessor.layout=org.apache.log4j.PatternLayout
log4j.appender.TextProcessor.layout.ConversionPattern=[%d] [%5p] (%F:%L) - %m%n

Заранее спасибо

Ответ 1

У вас есть две вещи: регистратор и приложение. К сожалению, вы выбрали одно и то же имя для обоих, что не делает его очень ясным.

Минимальный уровень журнала установлен для предупреждения, что означает, что все, что вы регистрируете с помощью этого регистратора, который не имеет хотя бы уровня предупреждения, будет проигнорирован.

Как только сообщение принимается регистратором, оно отправляется одному или нескольким приложениям (в файл, на консоль, на почтовый сервер и т.д.). Каждый из этих добавок может определять порог. Например, вы можете ограничить сообщения в консоли ошибками, но принять предупреждения в файле журнала.

Ответ 2

Порог - это второй фильтр для регистрации сообщений

например:

 log4j.logger.TextProcessor=Debug,TextProcessor , InfoLogger
 .
 .
 .
 log4j.appender.TextProcessor.Threshold=Error

если Logger установлен на уровне DEBUG и appender. Порог установлен в Error, а только с приложением TextProcessor только Ошибка и сообщения с более высокой степенью серьезности будут регистрироваться.

Использование порога - вы можете определить другой appender с разными пороговыми уровнями, например, например, в вышеупомянутом примере вы также можете включить InfoLogger с включенным протоколом сообщений уровня Info

 log4j.logger.TextProcessor=Debug,TextProcessor , InfoLogger
 .
 .
 .
 log4j.appender.InfoLogger.Threshold=INFO

Чтобы понять уровни, в log4j ниже уровни ведения журнала:

FATAL: shows messages at a FATAL level only  
ERROR: Shows messages classified as ERROR and FATAL  
WARNING: Shows messages classified as WARNING, ERROR, and FATAL  
INFO: Shows messages classified as INFO, WARNING, ERROR, and FATAL  
DEBUG: Shows messages classified as DEBUG, INFO, WARNING, ERROR, and FATAL  
TRACE : Shows messages classified as TRACE,DEBUG, INFO, WARNING, ERROR, and FATAL
ALL : Shows messages classified as TRACE,DEBUG, INFO, WARNING, ERROR, and FATAL 
OFF : No log messages display

перейдите к URL для более подробной информации

Ответ 3

Уровни регистрации: TRACE, DEBUG, INFO, WARN, ERROR и FATAL. Вы сможете выбрать, что регистрировать на каком уровне кода в зависимости от серьезности. Например, у вас будет возможность регистрировать вход и выход из методов, но вы можете зарегистрироваться на уровне DEBUG. Это поможет вам отладить код, поскольку по умолчанию он будет выводиться на консоль (включен консольный консоль по умолчанию). При переходе на производство вы можете увеличить порог до ERROR и не позволять приложению распечатывать не очень полезные сведения о консольных или журнальных файлах.

Ответ 4

Простое сопоставление файла конфигурации свойств с потоком сообщений журнала. (Я спрятал несколько строк конфигурации, чтобы свести к минимуму)

log4j.rootLogger=ALL, stdout
log4j.logger.com.xyz=INFO, file

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Threshold=DEBUG
...

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.Threshold=WARN
...

schema of logging from settings above

Чтобы понять, что это такое, вы должны знать, что:

  • Уровни регистрации увеличиваются при извлечении слева: TRACE, DEBUG, INFO, WARN, ERROR и FATAL
  • Регистрация минимального уровня, которую регистратор принимает из приложения.
  • Минимальный уровень входа в приложение, который решает, что будет написано

** В наследовании и аддитивности есть кое-что более сложное, но сначала вы должны начать с простых и простых вещей.