2

Enterprise Library v.3.1.1.0 Loggingブロックを使用する必要があるプロジェクトに取り組んでいます(log4netまたはnlogであることが望ましいのですが、選択できません)。複数のWCFWebサービスがホストされているIISアプリケーションがあり、それらは単一のweb.configファイルを共有しています。これも私が自由に変更できるものではありません。

これらのサービスには、以前はロギングが実装されていませんでした。

したがって、Ent Lib Configユーティリティを使用してローリングフラットファイルリスナーを設定し、必要な方法でテキストファイルにログインするのは非常に簡単です。私が抱えている問題は、サービスがすべて同じweb.configを共有している間に、各サービスが独自の個別のログファイルを持つことができるように適切に構成することです。

私はいくつかのチュートリアルを経験しましたが、これを行う方法を理解していません。

任意のヒント?

4

1 に答える 1

1

web.configの構成は静的であるため、構成されたトレースリスナーごとに1つのファイルがあります。サービスごとに1つのファイルを実現するための1つのアプローチは、各サービスログを異なるカテゴリに設定し、各カテゴリが異なるトレースリスナーを使用することです。これはプログラムで実行することもできます。これにより、サービスは実行時に独自のトレースリスナーを追加できますが、これは構成ファイルを手動で更新するよりも少し高度です(たとえば、サービスが1回だけ追加されるようにし、構成が更新されたときにそれが更新されるようにします。スレッドセーフ)。

Enterprise Libraryには、log4netの階層型ロガーに類似したものがないため、リフレクションを使用して元のクラスに基づいてログメッセージをルーティングする方法はありません。可能かもしれませんが、いくつかのコードを書く必要があります。Loggerファサードクラスを記述して、呼び出し元の名前空間に基づいてカテゴリを設定できます。(log4netのように一致する名前空間ワイルドカードがないことにも注意してください。)

于 2013-09-03T23:04:12.760 に答える