[英]Exception Handling Logging using Enterprise Library
我是微軟企業庫的新手。 我目前正在探索使用Enterprise Library 5來記錄系統拋出的異常到文本文件中。
問題1
我在Microsoft.Practices.EnterpriseLibrary.Logging
遇到了LogEntry
,它帶有ErrorMessages
和Message
。
我希望你們都能解釋哪些情況應該使用ErrorMessages
或Message
? 我目前找不到這兩個變量的任何定義。
如果我發現了異常,我應該將ex.Message
分配給ErrorMessages
還是Message
?
問題2
我還發現有Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging
。 我是否知道這是一種更正確的方法來記錄異常而不是使用Microsoft.Practices.EnterpriseLibrary.Logging
?
如果您的目的是處理/記錄異常,那么您應該使用異常處理塊( Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging
是其中的一部分)。 EH Block允許您配置如何處理不同類型的異常並創建異常類別。 然后,當您需要處理異常時,您只需要調用:
ExceptionPolicy.HandleException( ex, <NameOfPolicy> );
該庫將負責其余部分,將輸出路由到正確的偵聽器。
此外,EH Block還具有內置的后備記錄功能。 假設您正在嘗試登錄數據庫,但無法訪問數據庫。 您可以使用回退配置EH塊(開箱即用它使用Windows事件系統)以及無法創建日志並將原始異常記錄到回退的事實。
可能為時已晚,但如果是在案件中它可以幫到某人。
您不應該直接使用Microsoft.Practices.EnterpriseLibrary.Logging
來記錄錯誤。 它應該僅用於一般信息記錄。
使用Microsoft.Practices.EnterpriseLibrary.ExceptionHandling
和Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging
進行錯誤處理和錯誤記錄,並以此方式對其進行配置,以便它使用其中一個日志記錄策略來記錄錯誤。 在日志中寫入的內容取決於格式化程序的配置方式以及記錄位置取決於列表器。
對於第一個問題,你大多使用Message
, ErrorMessages
是更多的額外信息。 EntLib ErrorMessages
對於第二個問題:
Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging
它位於Microsoft.Practices.EnterpriseLibrary.Logging
之上,它主要將字符串格式化為可以登錄,因此使用它來記錄異常是可選的,取決於您的日志記錄策略。 例如,我使用Microsoft.Practices.EnterpriseLibrary.Logging
來記錄所有內容,只是因為我更喜歡使用最少的外部引用,並且兩者之間的差異不是那么大。 LoggingExceptionHandler
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.