3

Logbackの機能を使用して%replace、ログ ファイル内のパスワードやセキュリティ トークンなどの機密情報をマスクしています。

ただし、特定のアペンダーを対象としたログ ステートメントの 10% のみがマスキングを必要とします。残りの 90% については、代替の正規表現を実行することは冗長なオーバーヘッドです。

機密性の高いステートメントにタグを付けるためにマーカーをSEC_SENSITIVE使用したり、実行するアペンダーを制限するためにフィルターを使用したりすることを考えました。これには、1 つのロガーに対して 2 つの相互に排他的なアペンダーを設定する必要があります。

Logger
  |---- Appender 1 (only if marker != SEC_SENSITIVE, no replacement)
  |---- Appender 2 (only if marker == SEC_SENSITIVE, with replacement)

両方のアペンダーが同じファイルに書き込みます。

この時点で、いくつか質問があります。

  1. この設定は意味がありますか?それとももっと簡単な方法がありますか?(理想的には、カスタム コードのない OOTB)
  2. このオプションに関するドキュメントと StackOverflow の質問では、prudent複数の JVM セットアップでの使用法が強調されています。この場合、すべてのログ出力は単一の JVM で発生します。このオプションを有効にする必要はありますか? それとも、Logback は 2 つのローカル アペンダーを同期して同じファイルに出力するほど賢いのでしょうか?
  3. このための OOTB フィルターはありますか? MarkerFilterしか見つかりませんでしたが、それはTurboFilter.
  4. 条件付き置換は OOTB でサポートされるようになりましたか (この回答で提案されているように)?

環境: Pax Logging 1.7.0 を使用する Apache ServiceMix 上の OSGi。

4

1 に答える 1