0

Enterprise Library v4.0 を使用する BIG クライアント サービス アプリケーションがあります。

DB への新しい接続があるたびに、Enterprise Library ロガーを使用します。(web.config および app.config でコメントまたは on/off ブール値を使用して) ロガーをシャットダウンすると、バッチ操作 (たとえば、100 レコードを要求する) に約 6 ~ 7 秒かかります。ロガーを装着すると、約20秒かかります。

私の質問は、Enterprise Library がロガーをどのように正確に操作するかです。それはスレッドを使用しているかどうかです。どうすれば正確にわかりますか?

スレッドを使用してロガーを呼び出したいので、この質問をしていますが、ライブラリが既にスレッドを使用している場合、成功しません。また、この操作にはスレッドを使用することをお勧めしますか? Log4Netなどの他のロガーを使用する必要があると思いますか?

4

2 に答える 2

1

エンタープライズライブラリロギングアプリケーションブロックはスレッドセーフです。ロガーがどのように動作するかを知りたい場合は、ソースコードを確認してください。

于 2012-08-08T17:06:19.563 に答える
1

Enterprise Library Loggerはリクエストを同期的に処理するため、書き込みリクエストを処理するためのスレッドを生成しません。

作成されているスレッドを確認したい場合は、デバッグ中にVisualStudioでスレッドを監視できます。

アプリケーションは常に情報をログに記録するスレッドを開始できますが、潜在的に多数の短期間のスレッドを開始することが実際にパフォーマンスに役立つかどうかを判断する際には注意が必要です。

常に何がかかっているかを判断するために、プロファイリングをお勧めします。

于 2012-08-10T04:23:56.597 に答える