Log4J的阈值意味着什么?

jav*_*erd 78 java logging 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
Run Code Online (Sandbox Code Playgroud)

提前致谢

JB *_*zet 123

你有两件事:一个记录器和一个appender.不幸的是,你为两者选择了相同的名称,但这并不是很清楚.

记录器的最低级别设置为警告,这意味着您使用此记录器记录的所有内容(至少没有警告级别)将被忽略.

一旦记录器接受了消息,它就会被发送到一个或多个appender(一个文件,一个控制台,一个邮件服务器等).这些appender中的每一个都可以定义阈值.例如,您可以将控制台中的消息限制为错误,但接受日志文件中的警告消息.


Shi*_*ari 31

阈值是要记录的消息的第二个过滤器

例如:

 log4j.logger.TextProcessor=Debug,TextProcessor , InfoLogger
 .
 .
 .
 log4j.appender.TextProcessor.Threshold=Error
Run Code Online (Sandbox Code Playgroud)

如果Logger设置为DEBUG级别,并且appender Threshold设置为Error,则使用appender TextProcessor仅记录错误和更高严重性的消息.

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

 log4j.logger.TextProcessor=Debug,TextProcessor , InfoLogger
 .
 .
 .
 log4j.appender.InfoLogger.Threshold=INFO
Run Code Online (Sandbox Code Playgroud)

要了解级别, 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
Run Code Online (Sandbox Code Playgroud)

转到URL以获取更多详细信息


Vin*_*d R 25

日志记录的水平TRACE,DEBUG,INFO,WARN,ERRORFATAL.您将能够根据严重性选择在代码中的哪个级别进行日志记录.例如,您将能够记录方法的进入和退出,但可以选择在该DEBUG级别进行记录.这将帮助您调试代码,因为默认情况下它将在控制台上打印出来(默认控制台appender已打开).在开始生产时,您可以增加阈值ERROR并阻止应用程序在控制台或日志文件上打印出不那么有用的详细信息.


Ken*_*ock 10

为您提供从属性配置文件到日志消息流的简单映射.(我隐藏了一些配置行以最小化)

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
...
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

要了解它是什么,你应该知道:

  • 检索到最左边时,日志记录的级别会增加:TRACE,DEBUG,INFO,WARN,ERROR和FATAL
  • 记录器从应用程序接受的最低级别日志记录
  • appender上的最低级别日志记录决定了要写入的内容

**关于继承和可加性有一些更复杂的事情,但你应该首先从基本和简单的事情开始.