0

私のソフトウェアはサービス指向アーキテクチャ (SOA) を使用しています。すべてのサービス (簡単にするためにモジュールと呼びます) は、1 つのログ ファイルに書き込みます。モジュール間でロギングを区別したいと思います。以下は、ログメッセージをどのように見せたいかです。

[MODULE-1] INFO - This is a test log message from MODULE ONE
[MODULE-2] INFO - This is a test log message from MODULE TWO

これを行う利点は、ログを「追跡」しながら必要な情報を grep できることです。また、ログを分析しながら、必要なモジュールごとの情報を grep できます。これは達成可能ですか?ロギング ユーティリティとして log4j を使用しています。各モジュールには複数のパッケージ (パッケージの階層) を含めることができることに注意してください。これを達成するために私が遭遇した最も近いものは、MDC を使用することです。

4

1 に答える 1

0

MDC (MappedDiagnosticContext) を使用してこれを実現できました。幸いなことに、SOA フレームワークにより、コンテキスト情報 (サービス/モジュール名) を非常に一般的な方法で配置できる場所が提供されました。以下は、私のためにそれを行ったコードです。

MDC.put("MODULE", getServiceName())

もちろん、EnhancedPatternLayout の -X タグを使用して情報を取得できました。

于 2014-07-09T17:08:26.243 に答える