ロギングフレームワークとしてJDKロギングを使用し、シンプルなファサードとしてSLF4Jを使用しています。異なるレベルのログをログに記録するときに、いくつかのクエリがあります。
SLF4Jには次のログレベルがあります
trace (the least serious)<br>
debug<br>
info<br>
warn<br>
error<br>
fatal (the most serious)<br>
JDKロギングには次のログレベルがあります
SEVERE (highest value)<br>
WARNING<br>
INFO<br>
CONFIG<br>
FINE<br>
FINER<br>
FINEST (lowest value)<br>
ログレベルをDEBUGに設定したい場合、そのレベルはJDKロギングでは使用できません。この状況でDEBUGレベルのログを取得する方法を誰かに説明してもらえますか。この状況のために追加の構成を行う必要がありますか?
更新
これは私のプロパティファイルの構成です
handlers = com.amc.logging.handlers.DebugLogHandler
com.amc.logging.handlers.DebugLogHandler.pattern=c:/logs/debug_log.log
com.amc.logging.handlers.DebugLogHandler.level=FINE
com.amc.logging.handlers.DebugLogHandler.formatter=Java.util.logging.SimpleFormatter
com.amc.logging.handlers.DebugLogHandler.append=true
どこが間違っていたのか教えてください。
私は以下の投稿の助けを借りてこの問題を解決しました。
jdkを使用したslf4jロギング–デバッグを有効にする方法
SLF4JでのDEBUGレベルのロギングでは、Java.util.loggingでFINEレベルをマップする必要があります。
また、デフォルトのログレベルをFINE以下のレベルに設定する必要があります。これは、以下の行をログ構成ファイルに入れることで実現できます。
.level = FINE
もう1つの問題は、ハンドラーを定義したにもかかわらず、それをロガーに割り当てていないことです。
ルートロガーに割り当てるには、
.handlers=com.amc.logging.handlers.DebugLogHandler
アプリケーションのロガーに割り当てるには、ロガーを定義します
com.company.application.package.level=FINE
そして、それにハンドラーを割り当てます:com.company.application.package.handlers=com.amc.logging.handlers.DebugLogHandler
また、com.amc.logging.handlers.DebugLogHandlerは、自分で定義したクラスですか?それはあなたのクラスパスにありますか?そうでなければ、Java.util.logging(JUL)がそれを認識しないと思います。
JULに付属しているハンドラーの1つを試してください。
handlers=Java.util.logging.FileHandler, Java.util.logging.ConsoleHandler
そして、必要なレベル、ログの場所、形式でそれらを構成します。
以下にlogging.propertiesファイルの例を示します。 https://Tomcat.Apache.org/Tomcat-6.0-doc/logging.html#Using_Java.util.logging_(default)
Apacheのjuli実装のハンドラーを使用しますが、JULのクラスに置き換えるだけです: https://docs.Oracle.com/javase/7/docs/api/Java/util/logging/package-summary.html