2016-04-29 37 views
5

私はlog4j2(バージョン2.5)を使用していますが、ログメッセージのパターンの一部を隠すメッセージコンバータプラグインを作成しようとしています。私はこのプラグインで私のWebアプリケーションを実行すると、私はこれがlog4j2ログメッセージをマスクする方法

は、コンバータキー「M」はすでにクラス org.apache.logging.log4j.core」にマッピングされているWARNメッセージを警告表示さ

@Plugin(name = "CustomeMasking", 
     category = "Converter") 
@ConverterKeys({"m"}) 
public class MyCustomFilteringLayout extends LogEventPatternConverter { 
} 

.pattern.MessagePatternConverter '。申し訳ありませんが、 デイブ、私はあなたにそれをさせることはできません!プラグインを無視する[クラス MyCustomFilteringLayout]

log4j2サイトを調べた後、私はこれらの参照を見つけました。複数のコンバータが同じConverterKeysを指定した場合

Reference

は、上記、負荷 順序は1つが使用されるかを決定します。たとえば、 には、組み込みの DatePatternConverterクラスで提供されている%dateコンバータをオーバーライドするには、log4j-core.jarより前のCLASSPATHの JARファイルにプラグインを配置する必要があります。これは ではありません。 pattern ConverterKeysの衝突により、 への警告が出力されます。独自のパターン コンバータ用に独自のConverterKeysを使用してみてください。

m/msgのカスタムコンバーターを作成するにはどうすればいいですか?それを行うためのより良い方法はありますか?

追加詳細: MyCustomFilteringLayoutの陰影付きの瓶を作成しました。私がこのようにしている理由は、マスキングロジックをアプリケーションとは別にしておきたいということです。


私はこのようになります私自身のキーのためのコンバータを作成している

を更新し、

@Plugin(name = "CustomeMasking", 
      category = "Converter") 
    @ConverterKeys({"cm"}) 
    public class MyCustomFilteringLayout extends LogEventPatternConverter { 
    } 

ここで私は同じConverterKeysのための別のコンバータ書き込むことはできません - センチ? は今私のlog4j2.xmlは

<PatternLayout> 
       <Pattern>%d %p %c{1.} [%t] %cm %ex%n</Pattern> 
      </PatternLayout> 
+0

ただ、既存のコンバータでは使用できない別のキーを使用して、それに応じてログパターンを変更できますか? –

+0

もし私がそれを行うなら、私は私のユースケースを解決しないと思う私のキーのための複数のコンバータを書くことができないでしょう。私のユースケースは、ログメッセージから特定のパターンをマスクしたいのですが、私が考えているのは、さまざまなシナリオで多くのコンバータを作成することです。私はそれを間違っているのですか?それを行うためのより良い方法はありますか? – Shishir

+0

ログイベントのデータをマスクし、特定のコンバータキーが使用されないようにしたいと思っていますか?異なるコンバータキーを使用して独自のコンバータを作成するのはなぜですか?私はあなたが複数のコンバータを書くことができないというあなたの声明を本当に理解していません。おそらく、あなたが達成したいことをもう少し説明する必要があります。 – rgoers

答えて

3

あなたの更新は、問題を解決し、カスタム1に内蔵されたメッセージコンバータを交換する方法の質問は答え、このパターンレイアウトを持っています。ユニークなキーが必要です。

パターンをパラメータ化したいと思うように聞こえます。多くのパターンはoptionsパラメータをとります。これを使用して振る舞いを制御することができます。したがって、レイアウトパターンに%cm {key1}を指定すると、%cm {key2}と異なる結果が生成されます。

パラメータを取るコンバータの例については、MdcPatternConverterのソースコードを参照してください。

+0

これは役に立ちました? –

+0

お返事ありがとうございます。それは役に立ちます。 – Shishir

関連する問題