私のプログラムでは、ロギングイベントの2つの別々のストリームがあります(簡単にするためにストリームと呼びますが、実際には2つのアペンダーと呼んでいます)。Stream1 にはクライアント ログが含まれ、Stream2 には制御ログが含まれます。これは簡単に思えるかもしれませんが、状況に応じて、特定のクラスがクライアント ロギングとサーバー ロギングの両方に含まれる場合があります。これをさらに複雑にしているのは、クライアントが必要とするコマンドが 2 つの別個のスレッド (スレッド プールからランダムにフェッチされるスレッド) で実行されるため、MDC または NDC を使用したあらゆる種類の追跡が不可能になることです。
これを本当に単純化するのは、ロガーが呼び出し元のインスタンスからアペンダーを継承できる場合です。そうすれば、2 つのロガーに対して 2 つのアペンダーをセットアップして完了できます。しかし、それをきれいに、または簡単に行う方法がわかりません。誰かがそうする方法について何かアドバイスを提供できますか?
注: 何かを渡す必要がある場合、必要に応じて使用できるチェーン内のすべてに渡されるイベント Bean があります。