Log4J中的阈值是什么意思?

2022-08-31 11:49:21

我有一个如下属性。登录的所有内容都高于 WARN 级别。我不明白这里设置的调试阈值。有人可以解释阈值的作用吗?log4jTextProcessor.log

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

如果记录器设置为级别 DEBUG,并且追加器阈值设置为错误,则使用追加器文本处理器时,将仅记录错误和更高严重性的消息。

使用阈值是,您可以定义具有不同阈值级别的不同追加器,例如在上面提到的示例中,您还可以使用启用了信息级别消息日志记录的信息记录器

 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 了解更多详情


推荐