9

クラスに非常に冗長なメソッドが 1 つあるため、ログが読みにくくなっています。その 1 つのメソッドのレベルを変更するだけでログを減らし、同じクラスの他のメソッドは変更しないでおきたいと思います。これは可能ですか?

4

4 に答える 4

8

そのクラスのレベル構成は変更できますが、クラス内の特定のメソッドは変更できません。必要なことを行う唯一の方法は、そのメソッド内で別のロガーを使用してから、別のレベルで構成することです。

お役に立てれば。

于 2012-11-12T13:00:32.530 に答える
4

メソッドごとにロギング レベルを変更することはできません。「ロガー」は、制御の粒度の最も細かいレベルです。通常、ロガー インスタンスとクラスの間には 1 対 1 の関係がありますが、それはアプリケーションのコーディング方法によって異なります。

コードを変更できる場合は、ノイジー メソッド用の特別なロガー オブジェクトを作成して、既存のロガーを使用する他のコードから独立して制御できるようにすることをお勧めします。(または、メソッドのロガー呼び出しを変更するだけかもしれません。)

コードを変更できない場合は、ログ ファイルの後処理やAppender、不要なログ メッセージを抑制するカスタムの作成と構成などの「ハック」に頼らなければならない場合があります。

于 2012-11-12T13:02:16.840 に答える
0

メソッドのみのロギング方法を直接変更することはできないと思います

于 2012-11-12T13:00:51.687 に答える
0

それが可能だ。OPに関する私のコメントを参照してください。

秘訣は、カスタム レベル (TRACE 未満) を作成し (ここで説明されているように)、そのログ レベルを非常に詳細な方法で使用することです。

多くの場合、そのメソッドでは、ロギング メソッドへの Logger ショートカットを使用しませんが、Logger.log(Level, Object) および Logger.log (Level, Object, Thowable) メソッドに頼る必要があります。

于 2012-11-12T13:30:51.330 に答える