我正在寫一個錯誤日誌記錄集,它將記錄到文件,事件日誌等等。應該在這些類中執行哪些異常處理?例如,假設我有一個LogError方法,它從異常處理程序中調用,並寫入文件。如果發生錯誤,什麼被認爲是最好的事情?顯然,我應該儘可能使這些方法儘可能安全,但是總會出現問題。錯誤日誌記錄類中的最佳異常處理策略是什麼?
回答
一般來說,我輸出到stderr在這種情況下,儘可能多的信息越好,在日誌代碼往往都錯誤/異常,原始日誌/錯誤/異常。這樣有可能再現問題或理解它。
如果再寫入到stderr失敗是放棄的時候 - 無論是忽略它,完全終止應用程序。
爲什麼不使用log4j/log4net/log4php/log4 *等現有日誌記錄機制?這些工具可能會將這些細節整理出來。
作爲一個側面說明,如果你運行你的代碼中的容器內(比如:Tomcat)的,即使你拋出的異常處理程序中的異常,容器會抓住它,並顯示它。就像Douglas Leeder說的那樣,你可以捕獲處理程序中的所有異常並將其傳遞給syserr。
+1不要重新發明車輪。 – 2009-02-25 11:10:19
是的,但是log4net輪有比我們需要更多的花裏胡哨的附加。在我的時間裏我寫了很多錯誤記錄器,而且他們總是很簡單,並且按照他們的要求做。這並不困難。 – darasd 2009-02-25 11:14:26
這取決於日誌記錄是爲了什麼,如果它的調試日誌記錄,我會吞下異常,並繼續,因爲我從來不希望應用程序在生產中會由於調試工具,在另一方面,如果我登錄到銀行應用程序的審計日誌我猜如果應用程序在沒有審計的情況下繼續工作,客戶將會感到不安。
我是錯誤日誌記錄。 – darasd 2009-03-02 15:32:37
您可以將審覈和異常處理實施爲服務。應用程序級審計日誌需要有關每個業務事務的狀態數據。在業務或事務上下文中監視應用程序的能力要求服務中的監視接口發送消息,詳細說明特定於服務調用的事務狀態。這要求每個服務在業務交易中的關鍵步驟發送狀態消息。然後,您可以構建一個實時查看器,將狀態消息(基於消息的語義 - 例如事務ID)與複合應用程序內的服務相關聯。這提供了SLA管理,故障跟蹤和問題確定的業務事務的端到端視圖。
審計服務然後可以被實現爲狀態機,可消耗和基於在它的配置定義的標準記錄的消息。通用異常處理程序還可以使用審計服務來支持企業SOA中出現的問題的集中視圖 - 以支持基於異常的監視。在該解決方案的任何應 - 不發生條件儀器發送異常消息給exception handler.
- 1. 在Rails中處理異常和錯誤的最佳策略是什麼?
- 2. Sitecore異常處理和日誌記錄
- 3. ASP.NET異常處理/日誌記錄
- 4. 日誌分析應用程序的最佳策略是什麼
- 5. ASP.Net MVC異常日誌記錄與錯誤處理
- 6. 日誌記錄策略
- 7. 幫助處理JavaScript應用程序錯誤日誌記錄的策略
- 8. Eclipse中的日誌記錄策略PDE
- 9. 異常處理策略
- 10. WCF異常處理策略
- 11. Java異常處理策略
- 12. 在ASP.NET MVC應用程序中定義異常處理和錯誤日誌記錄的最佳實踐?
- 13. 用NLog集中記錄日誌的最佳方法是什麼?
- 14. PowerShell錯誤處理和日誌記錄
- 15. ASP.NET MVC中全局錯誤/異常處理的最佳實踐是什麼?
- 16. 什麼是最好的日誌記錄
- 17. 異步JavaScript錯誤處理的最佳做法是什麼?
- 18. UI中的異常處理策略
- 19. 庫中的異常處理策略
- 20. 團隊中最棒的Android日誌策略是什麼?
- 21. 在Perl中處理異常的最佳方式是什麼?
- 22. 什麼是ASP.NET中的錯誤日誌的最佳實踐?
- 23. GWT服務異常日誌記錄的最佳實踐
- 24. MSAccess:錯誤3146 ODBC調用失敗 - 處理的最佳策略?
- 25. 客戶端日誌記錄策略
- 26. 日誌記錄策略與性能
- 27. AWS容器服務 - 什麼是日誌記錄最佳實踐?
- 28. 使用ETW記錄異常的最佳方式是什麼?
- 29. 如何在日誌記錄中處理異常?
- 30. 如何在使用Log4j2異步日誌記錄時處理日誌記錄中的異常?
我使用的.Net,如果是相關的,但我不知道這是真的。 – darasd 2009-02-25 11:13:51