2009-01-21 83 views
6

我剛開始在我的(Delphi)應用程序中使用異常記錄器(EurekaLog)。現在,我的應用程序每天都會通過電子郵件向我發送大量錯誤消息。這裏是我發現了迄今爲止異常記錄器:最佳實踐

  • 大量重複的錯誤,從相同的PC

  • 多個郵件雖然這是非常寶貴的投入,以提高我的申請,我稍微純粹不堪重負我得到的信息量。

    從您的應用程序處理郵件的最佳做法是什麼?

  • 回答

    0

    我認爲你應該丟棄所有重複。只留下報告的數量。即如果有100個報告,但只有4個獨特的問題 - 只留下4個報告,丟棄其他96個報告,但使用他們的計數按嚴重程度對報告進行分類。例如,第6個問題報告6個,第3個10個報告,第2個20個,第1個60個。所以,你應該修復60個報告的第一個問題,然後切換到第二個。

    我相信EurekaLog在其報告中有BugID。相同的問題具有相同的BugID。這將允許您對重複的報告進行分類。 EurekaLog Viewer還可以整理重複。

    8

    如果你得到很多信息,因爲它是目前的情況下,你根本得不到任何信息。

    所以我會說你的錯誤分爲組,如警告,致命錯誤等 然後限制你的電子郵件到最重要的信息(致命)。 除此之外,定期檢查您的日誌(日,周...)。

    +0

    第一句話+1。如此真實! – Treb 2009-01-21 12:09:46

    1

    這很大程度上取決於發回的錯誤。顯而易見的是,如果您的應用程序出現錯誤,他們需要修復併發送給客戶端的修補程序/更新。

    如果它們是您知道可能發生的異常,並且不需要通知您,則可以在Eureaka Log選項中添加「Exception Filters」以指定應如何處理(或忽略!)。

    另一種選擇是在郵件主題行中使用EurekaLog變量(您可以在其中添加例外描述等),然後使用您的電子郵件客戶端進行基於此的過濾。

    6

    我使用madExcept作爲核心,但我自己的傳輸機制,我的異常日誌記錄所做的是讓他們都進入數據庫。核心信息全部從每個報告中提取出來並放入字段中,並且整個報告也存儲起來。堆棧跟蹤會自動分析以刪除不感興趣的功能,僅留下我失敗的功能列表。由於這種情況會自動發生,我現在可以「忽略」每個單獨的消息進來,但在一個網格中看到更大的圖像,它顯示了哪些功能最具問題。然後,我可以專注於它們,尋找原因並修復它們。

    如果我選擇,我的顯示應用程序也可以在構建之前篩選出構建中的報告,這樣我就可以告訴它在構建75之前不要包含「MyWidget.BadProc」。

    這幫助我改進了我的應用程序,解決了人們發現問題最多的問題,而無需猜測。

    +0

    我們對Eureka Log做了同樣的事情,我們發現它確實是管理大量客戶(〜25,000)異常情況的最佳解決方案。 – Mick 2009-01-21 13:30:22

    1

    我用madExcept做了這個。這對於追蹤我們無法再現的問題非常有用。

    這讓我問你爲什麼這麼多?未經處理的例外應該是少之又少。特別是如果用戶看到錯誤對話框。我負責幾個應用程序,每個應用程序都有數百次安裝,我很少會收到電子郵件通知。

    如果他們主要來自少數幾臺PC,我會與這些用戶中的一些人一起找出他們做了什麼不同的事情,或者他們的設置如何產生異常。

    如果他們來自各地,這可能是一個錯誤,通過您的測試。

    無論哪種方式,使用細節來修復你的代碼,或者,至少,預測已知的異常,並適當地捕獲它們(沒有空的try..except)。

    解決熱點問題會減少您獲得的電子郵件的數量,使偶爾的通知變得更易於管理。