簡體   English   中英

Log4J 中的閾值是什么意思?

[英]What does threshold mean in Log4J?

我有一個類似於下面的log4j屬性。 TextProcessor.log記錄的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

這里有兩件事:記錄器和附加器。 不幸的是,您為兩者選擇了相同的名稱,這並不十分清楚。

記錄器的最低級別設置為警告,這意味着您使用該記錄器記錄的所有低於警告級別的內容都將被忽略。

一旦消息被記錄器接受,它就會被發送到一個或多個附加程序(到文件、控制台、郵件服務器等)。 這些附加程序中的每一個都可以定義一個閾值。 例如,您可以將控制台中的消息限制為錯誤,但接受日志文件中的警告消息。

閾值是要記錄的消息的第二個過濾器

例如:

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

如果 Logger 設置為 DEBUG 級別並且 appender Threshold 設置為 Error,那么使用 appender TextProcessor 只會記錄錯誤和更高嚴重性的消息。

閾值的使用是,您可以定義具有不同閾值級別的不同附加程序,例如在上面提到的示例中,您還可以啟用啟用信息級別消息日志記錄的 InfoLogger

 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

前往網址了解更多詳情

日志記錄的級別是TRACEDEBUGINFOWARNERRORFATAL 您將能夠根據嚴重性選擇在代碼中的哪個級別記錄的內容。 例如,您將能夠記錄方法的進入和退出,但可以選擇在DEBUG級別進行記錄。 這將幫助您調試代碼,因為默認情況下它會在控制台上打印出來(默認控制台 appender 是打開的)。 在進入生產環境時,您可以將閾值增加到ERROR並防止應用程序在控制台或日志文件上打印出不太有用的詳細信息。

為您提供從屬性配置文件到日志消息流的簡單映射。 (我隱藏了一些配置行以最小化)

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
...

從上面的設置記錄的架構

要了解它是什么,您應該知道:

  • 檢索到最左側時日志記錄級別增加:TRACE、DEBUG、INFO、WARN、ERROR 和 FATAL
  • 記錄器從應用程序接受的最低級別日志記錄。
  • 決定將要寫入的內容的附加程序的最低級別日志記錄

** 關於繼承和可加性有一些更復雜的事情,但您應該首先從基本和簡單的事情開始。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM