2012-11-12 6 views
5

クラス内に非常に冗長なメソッドが1つあります。これにより、ログが読みにくくなります。私はそのメソッドのレベルを変更するだけで、同じクラスの他のメソッドを変更せずにロギングを減らしたいと思います。これは可能ですか?log4jを使用してJavaメソッド内でログレベルを設定することはできますか?

+0

独自のログレベルを宣言し、その方法で使用することができます。もう一つの方法はちょっとハッキーで、Logger.setLevel()を使ってメソッドのLogレベルを上げることになっていますが、それは本当に巧妙です – BigMike

答えて

6

クラス内の特定のメソッドではなく、そのクラスのレベル設定を変更できます。あなたが望むことをする唯一の方法は、その方法の中で別のロガーを使用して、それを別のレベルで構成することです。

これが役に立ちます。

0

私はそれはあなたがメソッドごとにログレベルを変更することはできません唯一の方法

3

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

コードを変更できる場合は、既存のロガーを使用する他のコードとは独立して制御できるように、ノイズの多いメソッド用の特別なロガーオブジェクトを作成することをお勧めします。

コードを変更できない場合は、ログファイルの後処理や、ログファイルの後処理などの「ハック」に頼らざるを得ない可能性があります。Appender不要なログメッセージ。

-1

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

トリックは、カスタムレベル(TRACEより小さい)(hereで説明)を作成し、そのログレベルを非常に冗長な方法で使用しています。

このメソッドでは、ロギングメソッドへのロガーショートカットは使用できませんが、Logger.log(Level、Object)およびLogger.log(Level、Object、Thowable)メソッドを使用する必要があります。

関連する問題