簡體   English   中英

C#異常記錄想法

[英]C# Exception logging ideas

我即將結束我正在開發的C#/ ASP.NET項目,在可預見的將來,我將不得不在其他C#項目中支持該項目。 我確實需要一種很好,簡單且全局的方式來記錄已生成的任何異常的所有詳細信息,既可以通過電子郵件將我/日志發送到數據庫/ etc,也可以向用戶顯示“簡單”版本。

目前有哪些解決方案可用於C#? 另外,由於我的程序幾乎沒有日志功能,因此幾乎可以完成,無論何時拋出異常,都可以以某種方式執行我的日志代碼,而無需顯式調用它。

Apache的log4net和Microsoft的最佳實踐和模式阻止了日志記錄。

如果您有自定義例外,則可以在其中包含日志記錄功能。

使用埃爾瑪。 您可以從NUGET獲取它。 Log4net也是一個不錯的選擇。

只需將一個Application_Error方法添加到global.asax並在此處處理您的錯誤。

您可以創建一個處理所有日志記錄並返回信息的類,該類可以將其放在一個簡單的消息框中,以告知用戶友好的想法,然后僅對可疑的代碼部分調用您的類方法。 那就是我通常所做的。

或者,如果我在錯誤的樹上吠叫(這確實會發生),這可能會對您有所幫助

http://csharp-source.net/open-source/logging

考慮Windows錯誤報告 要使用WER,只需允許意外的異常逸出您的過程即可。 操作系統將捕獲快照,並(在用戶的許可下)將其上傳到Microsoft的服務器,在此處自動對其進行分析並(啟發式)放入“存儲桶”中(單個“存儲桶”中的所有報告很可能是由快照引起的)同樣的錯誤)。

這樣,您不僅可以查看異常,還可以在引發異常時收集過程的快照。 VS2010能夠打開這些快照(小型轉儲)。 WER還包括確定哪些錯誤更重要(即影響更多用戶)的工具。

您需要使用Authenticode代碼簽名證書才能使用WER(在過去幾年中,價格每年從$ 100- $ 400不等)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM