5

Windows、Firefox、またはGoogle Chromeはすべて、使用統計を監視し、クラッシュレポートが送信されたことを分析します。同じ機能をアプリケーションに実装することを考えています。

もちろん、大量のロギングステートメントをアプリケーションに散らかすのは簡単ですが、これは、コードに関数内の横断的関心事が多すぎないようにするために避けたいアプローチです。AOPを使ってそれを行うことを考えていますが、その前に、他の人がこの機能を最初にどのように実装するかを知りたいと思います。

誰か提案がありますか?

明確化:私はデスクトップアプリケーションに取り組んでおり、RDBMSは含まれていません

4

3 に答える 3

1

Joel は次のようなブログ記事を持っていました - 彼のアプリがクラッシュし、彼のサーバーにいくつかの詳細を連絡します。彼は重複をチェックして捨てていると思います。素晴らしいシステムで、読んで感動しました。

http://www.fogcreek.com/FogBugz/docs/30/UsingFogBUGZtoGetCrashRep.html

これは、私がいた場所で、データを受信するようにパブリック サーバーがセットアップされていた場所で行いました。私はデータベースの男ではなく、公共のインターネット上で制御するサーバーはありません。残念ながら、私の個人的なプロジェクトには、この優れた機能がまだありません。

于 2008-12-17T22:40:13.060 に答える
1

「.Net 2.0 アプリケーションのデバッグ」では、John Robbins (Wintellect の) が、クラッシュ レポート (実際には windbg/SOS ミニ ダンプ) を生成およびデバッグする方法について詳しく書いています。彼の Superassert クラスには、これらを生成するためのコードが含まれています。ただし、注意してください - これを適切に設定するには、シンボル サーバー、ソース サーバー、および VS2005 と windbg に関する十分な知識が必要です。しかし、彼の本はそのプロセスをガイドしてくれます。

使用状況の統計に関して、私はしばしばこれを承認に関連付けてきました。つまり、ユーザーは特定のタスクを実行する権利を持っています。簡単に言えば、これは次のようなメソッドになります (ApplicationActions は列挙型です)。

public static bool HasPermission( ApplicationActions action )
{
    // Validate user has permission.
    // Log request and result.
}

このメソッドは、シングルトンの SercurityService クラスに追加できます。私が言ったように、これは非常に単純ですが、私が考えているサービスの種類を示しているはずです.

于 2008-12-17T09:18:55.940 に答える
0

エンタープライズライブラリの一部であるロギングアプリケーションブロックを簡単に見てみましょう。それはあなたが必要とする多くのものを提供し、そしてよく維持されています。利用可能なシナリオとサンプルのいくつかをチェックしてください、私はあなたがあなたの好みにそれらを見つけると思います。

http://msdn.microsoft.com/en-us/library/cc309506.aspx

于 2008-12-17T22:34:53.570 に答える