15

ロギング フレームワークとして 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

どこで間違ったのか教えてください。

4

2 に答える 2

8

次の投稿の助けを借りて、この問題を解決しました。

jdk を使用した slf4j ロギング – デバッグを有効にする方法は?

SLF4J で DEBUG レベルのロギングを行うには、java.util.logging で FINE レベルをマップする必要があります。

また、デフォルトのログ レベルを FINE またはそれより低いレベルの FINE に設定する必要があります。これは、ロギング構成ファイルに次の行を追加することで実現できます。

.level=ファイン

于 2013-04-04T12:54:15.400 に答える
0

もう 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

于 2015-06-07T19:48:53.423 に答える