特定のメッセージ タイプを受け取り、それを MongoDB クラスターにダンプする log4j アペンダーを作成しました。「監査」としましょう
私はこのようなことができるようにしたい:
logger.debug (new AuditEntry (...));
任意のクラスから、log4j が「AuditEntry」タイプのログ メッセージを自動的に監査アペンダーにルーティングするようにします。これは可能ですか?これまでにこれを行うことができた唯一の方法は、rootLogger チェーンにアペンダーを追加することです。
log4j.rootLogger=DEBUG, Console, Audit
しかし、もちろん、AuditEntry も toString() でコンソールに出力されます。可能であれば、これを避けたいと思います。
1 つの解決策を考えましたが、それが最適な解決策かどうかはわかりません。監査フィルターをチェーンの最初にします。
log4j.rootLogger=DEBUG, Audit, Console
そして、log4j アペンダー呼び出し "clearFilterChain()" 内で、まだこれを試していません... また、この関数に関するドキュメントも見つかりませんでした。
他の解決策はありますか?