0

Logback を使用して、統合フレームワークからログを記録しています。すべての統合は同じ Java VM 内から実行され、構成に 1 つの logback.xml を使用します。それらはすべて別々のパッケージにあり、ローリングファイルアペンダーを使用して(単純なclass = "xyz"などを使用して)すべてが独自のファイルにログを記録するように設定しました。これはうまくいっています。

ただし、統合のすべては、共有ライブラリである別の jar ファイルを参照します。この共有ライブラリ内のクラスのアペンダーをセットアップできますが、ログがさらに別のファイルに移動すると、トレースが非常に困難になります。たとえば、最初のログは integration_one.txt に表示され、次は shared_lib.txt に表示され、次のログは integration_one.txt に表示されます。

共有ライブラリのログが、それを呼び出した統合と同じファイルになるように、logback を構成する必要があります。

私が考えることができる唯一の方法は、パッケージ x で始まるスレッドからファイル y にすべてのログを記録することですが、これを達成する構成を知りません。

誰にもアイデアはありますか?

4

1 に答える 1

0

残念ながら、Logback はそのようには機能しません。

jar ファイル内のクラスは、間違いなく独自のアペンダーを初期化し、通常は完全修飾クラス名を使用してそうします。

ログが追加されるファイルを制御する構成の部分は、その完全修飾クラス名を使用して、ログ エントリを適切なファイルに送信します。

要するに、クラスはそのログを1つ以上のアペンダーに向けることができますが、サードパーティのコードを使用して、外部要因に応じて同じクラスのログを異なるアペンダーに記録する方法を知りません。

jar ファイルにクラスを記述した場合は、コンテキストに基づいて使用するロガーを渡すことができる可能性がありますが、ソース コードがないか、変更したくないと推測しています。

于 2012-11-26T14:45:43.653 に答える