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