私はlog4j2(バージョン2.5)を使用していますが、ログメッセージのパターンの一部を隠すメッセージコンバータプラグインを作成しようとしています。私はこのプラグインで私のWebアプリケーションを実行すると、私はこれがlog4j2ログメッセージをマスクする方法
は、コンバータキー「M」はすでにクラス org.apache.logging.log4j.core」にマッピングされているWARNメッセージを警告表示さ
.pattern.MessagePatternConverter '。申し訳ありませんが、 デイブ、私はあなたにそれをさせることはできません!プラグインを無視する[クラス MyCustomFilteringLayout]@Plugin(name = "CustomeMasking", category = "Converter") @ConverterKeys({"m"}) public class MyCustomFilteringLayout extends LogEventPatternConverter { }
log4j2サイトを調べた後、私はこれらの参照を見つけました。複数のコンバータが同じConverterKeysを指定した場合
は、上記、負荷 順序は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>
ただ、既存のコンバータでは使用できない別のキーを使用して、それに応じてログパターンを変更できますか? –
もし私がそれを行うなら、私は私のユースケースを解決しないと思う私のキーのための複数のコンバータを書くことができないでしょう。私のユースケースは、ログメッセージから特定のパターンをマスクしたいのですが、私が考えているのは、さまざまなシナリオで多くのコンバータを作成することです。私はそれを間違っているのですか?それを行うためのより良い方法はありますか? – Shishir
ログイベントのデータをマスクし、特定のコンバータキーが使用されないようにしたいと思っていますか?異なるコンバータキーを使用して独自のコンバータを作成するのはなぜですか?私はあなたが複数のコンバータを書くことができないというあなたの声明を本当に理解していません。おそらく、あなたが達成したいことをもう少し説明する必要があります。 – rgoers