2008-12-17 30 views
5

Windows中,Firefox或谷歌瀏覽器的所有顯示器使用統計和分析崩潰報告發送給他們。我正在考慮在我的應用程序中實現相同的功能。監控使用情況Statistic--它是如何做呢?

當然,使用大量日誌記錄語句很容易讓一個應用程序亂丟垃圾,但這是我想避免的方法,因爲我不希望我的代碼在函數中有太多的交叉關注點。我正在考慮使用AOP來做到這一點,但在此之前,我想知道其他人如何首先實現此功能。

任何人有什麼建議嗎?

澄清:我工作的桌面應用程序,並且不涉及任何RDBMS

回答

1

在「調試.NET 2.0應用程序」約翰羅賓斯(在Wintellect的)寫了大量關於如何生成和調試崩潰報告(實際上可以windbg/SOS迷你垃圾箱)。他的Superassert類包含生成這些的代碼。雖然被警告 - 有正確設置它需要很多的努力:符號服務器,源服務器以及VS2005和WinDbg中有很好的瞭解。然而,他的書引導你完成整個過程。

關於使用統計數據,我經常綁到這個授權,即有用戶執行特定任務的權利。過於簡單地說,這可能是這樣的方法(ApplicationActions是一個枚舉):

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

這種方法可以被添加到一個單SercurityService類。正如我所說,這太簡單了,但應該表明我心中的那種服務。

0

我將採取快速瀏覽一下日誌記錄應用程序塊是企業庫的一部分。它提供了大量你需要的東西,並且維護得很好。查看一些可用的場景和樣本,我想你會發現它們符合你的喜好。

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

+0

EL是垃圾,不惜一切代價避免 – 2008-12-18 01:59:25

1

喬爾有關於這樣的一個博客文章 - 他的應用程序(一個或多個)陷阱崩潰,然後聯繫他的服務器組的一些細節。我認爲他檢查重複並將它們扔出去。這是一個很棒的系統,當我讀到它時,我印象深刻。

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

我們這樣做是在一個地方,我是在那有一個公共的服務器設置爲接收數據。我不是數據庫傢伙,也沒有我在公共互聯網上控制的服務器。我的個人項目不幸沒有這個偉大的功能呢。

相關問題