2014-03-27 131 views
2

我是微軟企業庫的新手。我目前正在探索使用Enterprise Library 5來將系統拋出的異常記錄到文本文件中。使用企業庫的異常處理日誌記錄

問題1

Microsoft.Practices.EnterpriseLibrary.Logging跨越LogEntry來到自帶ErrorMessagesMessage

我希望大家能夠解釋一下在哪些情況下應該使用ErrorMessagesMessage?目前我無法在這兩個變量中找到任何定義。

如果我發現有異常,我應該將ex.Message分配到ErrorMessages還是Message


問題2

我還發現,有Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging。我是否知道這是一種更正確的方式來登錄異常,而不是使用Microsoft.Practices.EnterpriseLibrary.Logging

回答

2

如果您的目的是處理/記錄異常,那麼您應該使用異常處理塊(其中Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging是其中的一部分)。 EH塊允許您配置如何處理不同類型的異常並創建異常類別。然後,當你需要處理異常,你簡單的需要調用:

ExceptionPolicy.HandleException(ex, <NameOfPolicy>); 

圖書館將採取其他的事情,路由輸出到正確的聽衆。

此外,EH塊具有用於回退記錄的內置功能。假設您正在嘗試登錄到數據庫,但無法訪問數據庫。您可以使用後備(使用Windows事件系統的開箱即用方式)配置EH Block,以及無法創建日誌並將原始異常記錄到後備的事實。

0

對於第一個問題, 你大多使用MessageErrorMessages是更多的額外信息。 EntLib ErrorMessages

對於第二個問題:

Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging 

它坐落在的Microsoft.Practices.EnterpriseLibrary.Logging頂部,它主要是格式化字符串是登錄就緒,所以用它來記錄異常是可選的,取決於你的日誌策略。例如,我使用Microsoft.Practices.EnterpriseLibrary.Logging來記錄所有內容,只是因爲我更喜歡使用最少的外部參考,兩者之間的差異並不大。 LoggingExceptionHandler

1

可能太晚了,但如果在這種情況下它可以幫助某人。

您不應該直接使用Microsoft.Practices.EnterpriseLibrary.Logging來記錄錯誤。它只能用於一般的信息記錄。

使用Microsoft.Practices.EnterpriseLibrary.ExceptionHandlingMicrosoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging進行錯誤處理和錯誤日誌記錄,並對其進行配置,以便使用其中一種日誌記錄策略記錄錯誤。日誌中將寫入什麼內容取決於您的格式化程序的配置以及將在何處記錄取決於您的列表程序。

相關問題