我應該在我的網路應用程序中登錄哪些資訊?
我完成了一個 Web 應用程序,並且正在嘗試實現一些日誌記錄。我從來沒有見過任何關於記錄什麼的好例子。只是例外嗎?還有其他我應該記錄的東西嗎?您發現哪些類型的資訊對查找和修復錯誤有用。
尋找一些具體的指導和最佳實踐。
謝謝
跟進
如果我正在記錄異常,我應該具體記錄哪些資訊?我應該做更多的事情
_log.Error(ex.Message, ex);嗎?
這是我對可以在其中記錄的內容和應用程序的邏輯分解,您可能想要登錄的原因以及您可能如何去做。不管我會建議在實現時使用 log4net 等日誌框架。
異常記錄
當其他一切都失敗時,這不應該。擁有一個擷取所有未經處理的異常的中心方法是一個好主意。除非您使用的不僅僅是執行緒,否則這應該不會比將整個應用程序包裝在一個巨大的 try/catch 中更難。工作並沒有在這裡結束,因為如果你等到異常到達你,很多有用的資訊就會超出範圍。至少您應該嘗試收集應用程序狀態的特定部分,這些部分可能有助於在堆棧展開時進行調試。您的應用程序應始終準備好生成此類日誌輸出,尤其是在生產中。如果您還沒有,請務必查看ELMAH 。我沒有嘗試過,但我聽到了很棒的東西
應用程序日誌
我所說的應用程序日誌包括任何日誌,這些日誌可以擷取有關您的應用程序在概念級別上執行的操作的資訊,例如“已刪除訂單”或“使用者已登錄”。這種資訊可用於分析趨勢、審計系統、鎖定、測試、安全和檢測粗略的錯誤。計劃將這些日誌也留在生產中可能是一個好主意,也許在不同的粒度級別。
跟踪記錄
對我來說,跟踪日誌記錄代表了最細粒度的日誌記錄形式。在這個級別,您較少關注應用程序正在做什麼,而更多地關注它是如何做的。這比實際逐行遍歷程式碼高出一步。它可能最有助於處理並發問題或任何難以重現的問題。您不希望一直執行它,可能只在需要時才打開它。
最後,與通常只在最後才解決的許多其他事情一樣,考慮日誌記錄的最佳時間是在項目開始時,以便可以在設計應用程序時考慮到它。很好的問題!