MS Enterprise Library Loggingは複数のアプリケーションに使用できますか?

StackOverflow https://stackoverflow.com/questions/1402379

質問

その-a)可能かどうか疑問に思っています。 b)優れた実践-複数のアプリケーションを単一のログインスタンスに記録しますか?

複数のASP.NETアプリがあり、エンタープライズダッシュボードアプリの一部としてクエリできる一元化された場所にすべての例外を集約したいと思います。データベーストレースリスナーとともに、ELロギングブロックとEL例外ブログの両方を使用しています。単一のデータベースに記録されたすべてのアプリで例外を確認したい。

ご意見、ベストプラクティスのガイドライン、または回答は大歓迎です。

役に立ちましたか?

解決

はい、ELを使用して複数のアプリケーションログを中央の場所に保存することは間違いなく可能です。

エンタープライズダッシュボードアプリケーションは、アプリケーションと層全体の例外を表示し、レポートを提供することが、ログを集中管理する大きな理由です。したがって、質問bにもイエスと答えます。

考えられる問題/マイナス

質問で言及しているので、データベーストレースリスナーを使用していると仮定しています。 (潜在的に大きい)ログデータベースを照会するユーザーと組み合わせて、多数のログエントリをログに記録するアプリケーションが多数ある場合、パフォーマンスが低下する可能性があり(ログが同期的に行われるため)、アプリケーションのパフォーマンスに影響を与える可能性があります。

別のアプローチ

この可能性を軽減するために、ディストリビューターサービスを使用して調査します非同期にログを記録します。そのモデルでは、すべてのアプリケーションがメッセージキューにログを記録します(MSMQトレースリスナーを使用)。次に、別のサービスがキューをポーリングし、ログエントリをトレースリスナー(この場合はデータベーストレースリスナー)に転送します。トレースリスナーは、ダッシュボードデータベースにメッセージを保持します。このセットアップは より複雑です。しかし、それはあなたが達成しようとしているものと調和しているようで、非同期処理やダッシュボードデータベースがダウンしている場合でもログを記録する機能(メンテナンスなど)などの他の利点があります。

その他の考慮事項

アプリケーション間でLogEntryプロパティの標準化を検討することもできます。たとえば、LogEntryには実際には「アプリケーション」がありません。アプリケーション名を表すExtendedPropertyを追加できます。または、Messageプロパティの特定の形式を標準化して、さまざまな情報をメッセージから引き出し、個別のデータベース列に保存して、検索と分類を容易にすることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top