Log4J中的阈值是什么意思?

大家好我有一个log4j属性如下所示。 在TextProcessor.log中logging的所有东西都在WARN级别以上。 我不明白在这里设置debugging的门槛。 有人可以解释什么是门槛

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 

提前致谢

你在这里有两件事:logging器和appender。 不幸的是,你们select了两个相同的名字,这并不是很清楚。

logging器的最低等级被设置为警告,这意味着你用这个logging器logging的所有没有至less警告等级的东西都将被忽略。

一旦消息被logging器接受,它就被发送到一个或几个appender(到文件,到控制台,到邮件服务器等等)。 每个appender可以定义一个阈值。 例如,您可以将控制台中的消息限制为错误,但在日志文件中接受警告消息。

日志的级别是TRACEDEBUGINFOWARNERRORFATAL 。 您可以根据严重程度select要在代码的哪个级别login的内容。 例如,您可以logging方法的入口和出口,但可以select在DEBUG级别login。 这将帮助您debugging代码,默认情况下它将在控制台上打印出来(默认控制台appender处于打开状态)。 在进行生产时,您可以将阈值提高到ERROR并防止应用程序在控制台或日志文件上打印出不那么有用的细节。

阈值是要logging消息的第二个filter

例如:

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

如果Logger设置为DEBUG级别,并且Appender Threshold设置为Error,则只使用Appender TextProcessor将loggingError和更高严重级别的消息。

阈值的使用是,你可以定义不同的appender与不同的阈值水平,例如在上面提到的例子中,你也可以让InfoLogger的信息级别消息logging启用

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

为了理解级别,在log4j中有以下级别的日志logging

 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更多的细节

给你简单的从属性configuration文件映射到日志消息stream。 (我隐藏了一些configuration文件以尽量减less)

 log4j.rootLogger=ALL, stdout log4j.logger.com.xyz=INFO, file log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.file.Threshold=DEBUG ... log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.Threshold=WARN ... 

在这里输入图像说明

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

  • TRACE,DEBUG,INFO,WARN,ERROR和FATAL的日志级别增加
  • logging器从应用程序接受的最低级别日志logging。
  • appender上的最低级别的日志logging决定了将要写入的内容

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