5

私は、現在一緒に動いている既存のクライアント/サーバー アプリケーションをたくさん持っています。時々、クライアントは、データの一部にアクセスするために、ある種の Web インターフェースを追加したいと思うでしょう。これらは通常カスタムですが、一部は「汎用」です。しかし、誰もが独自の VM に独自の「インスタンス」を持っています。

私が欲しいのは、これらの VM のいずれかで発生したエラーをキャプチャしてログに記録するための集中化された領域です。

新しいデータベースを作成し、WCF サービスをセットアップして、これらの各 webapps が集中型データベースとローカル EventLog にログ エントリを作成できるようにすることを検討しています。

それは設計が悪いのでしょうか?

アップデート

Web アプリケーションは、ASP.NET で構築された 2003/IIS6 および 2008/IIS7 上にあります。インスタンスの多くは Web サーバーのペアにありますが、多くは個々の VM にデプロイされます。

4

3 に答える 3

4

これがまさに私たちがそれを実装した方法です。

データベースには 3 つのテーブルがあります。

Event Types
------------ 
EventType int 
EventDescription varchar(50)


MonitoredSystems
---------------
SystemID int
SystemName varchar(50)
SystemDescription text


Events
-------
RecordID bigint
EventTime datetime
SystemID int FK
EventText text
EventType int FK
Acknowledged bit

また、イベントを閲覧できるサイトも作りました。「確認済み」フィールドを使用すると、「未確認の重大な問題」という名前のビューを設定できるため、新しい問題をすばやく確認し、読んだときにそれらを確認できます。

これを行うことができるツールが他にもあることは知っていますが、独自に開発したバージョンほど簡単に統合できるものはなく、現在、構築するすべてのアプリで使用しています。ここでは触れていませんが、他のツールではそのままでは提供されなかったカスタマイズがいくつかあります。

だからあなたの考えはいいと思います。自分で作成する場合は、必要に応じてカスタマイズできます。ただし、少なくとも Log4net などのツールを調べることをお勧めします。

于 2010-01-04T18:59:27.573 に答える
3

ELMAH (エラー ログ モジュールとハンドラ) ( http://code.google.com/p/elmah/ ) と Orbit One の Exception Reporter ( http://aspexceptionreporter.codeplex.com/Release /ProjectReleases.aspx?ReleaseId=35343 ) を組み合わせることで、一元化された場所でエラー レポートを企業全体に適用できます。

于 2010-01-04T18:58:34.547 に答える
0

頻繁にログを記録する場合(debug / info / warning)、RPC呼び出しが非同期で行われることを確認してください。

より柔軟なデータ構造をお勧めします。

Events
-------
RecordID bigint
EventTime datetime
EventLevel text 
SystemID text
EventText text
EventType text
Acknowledged bit

EventProperties
-------
RecordID bigint
key text
value text

EventPropertiesを使用すると、ロギングアプリケーションは、そのようなプロパティを事前に定義しなくても、役立つ可能性のある情報をログに記録できます。SystemIDには制約がないため、構成なしでシステムを追加できることに注意してください。

于 2011-10-06T06:41:16.177 に答える