こんにちはすべて私は以下のような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
前もって感謝します
ここには、ロガーとアペンダーの2つのことがあります。残念ながら、あなたは両方に同じ名前を選択しましたが、それはそれをあまり明確にしません。
ロガーの最小レベルは警告に設定されます。つまり、少なくともこの警告レベルを持たないこのロガーでログを記録するものはすべて無視されます。
ロガーがメッセージを受け入れると、1つまたは複数のアペンダー(ファイル、コンソール、メールサーバーなど)に送信されます。これらの各アペンダーは、しきい値を定義できます。たとえば、コンソールのメッセージをエラーに制限し、ログファイルの警告メッセージを受け入れることができます。
しきい値はログに記録されるメッセージの2番目のフィルター
例えば。:
log4j.logger.TextProcessor=Debug,TextProcessor , InfoLogger
.
.
.
log4j.appender.TextProcessor.Threshold=Error
loggerがレベルDEBUGに設定され、appender ThresholdがErrorに設定されている場合、AppenderのTextProcessorのみがError以上の重大度のメッセージがログに記録されます。
しきい値の使用は、さまざまなしきい値レベルでさまざまなアペンダーを定義できます。たとえば、上記の例では、Info Logで情報レベルのメッセージロギングを有効にすることもできます。
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 [〜#〜] にアクセスしてください
ロギングのレベルは、TRACE
、DEBUG
、INFO
、WARN
、ERROR
、およびFATAL
です。重大度に応じて、コードのどのレベルで何をログに記録するかを選択できます。たとえば、メソッドの開始と終了を記録する機能がありますが、DEBUG
レベルで記録することを選択できます。これは、デフォルトでコンソールに出力されるので、コードをデバッグするのに役立ちます(デフォルトのコンソールアペンダーはオンです)。本番環境に移行するときに、しきい値を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
...
それが何であるかを理解するには、次のことを知っておく必要があります。
**継承と加算性についてはもっと複雑なことがありますが、最初に基本的で簡単なことから始めてください。