2009-10-19 57 views
4

我們擁有第一個MVC應用程序,我在那裏徘徊着什麼特別的考慮。在常規的Web表單應用程序中,我們幾乎只是使用try catch塊將代碼事件封裝在頁面後面。但是,對於幫助者,控制者,路線等,mvc似乎不那麼清楚。我應該在哪裏確保記錄。如何爲Asp.NET MVC應用程序設置log4net

回答

2

通常情況下,您會在您的控制器操作中應用日誌記錄。您還可以從HandleError屬性派生來添加錯誤日誌記錄,以及創建自定義操作/結果過濾器來自動化某些類型的日誌記錄。有了這樣的過濾器,您可以將其應用於您的基本控制器,併爲所有操作提供一些基本的使用記錄/檢測。

如果您使用控制器工廠,操作調用程序或模型綁定器自定義框架,那麼也可以在其中應用日誌記錄。當然,關於如何將日誌記錄應用於實際模型(域對象,外部服務,持久性和數據庫,安全性等),這並無什麼可說的。

+1

我們通常(在應用程序的WebForm)也都在Global.asax中的Application_Error事件記錄。這是否也適用於MVC或是否有更適合處理所有未處理的異常的地方? – 2009-10-19 08:08:11

+1

Application_Error非常適合全面的異常記錄。事實上,我更喜歡將子類HandleError,因爲它也會記錄在線程中運行的代碼中的異常,而不直接處理Web請求(例如Application_Start中的代碼)。 – 2009-10-19 08:49:59

0

在你的Global.asax.cs文件:

protected void Application_Error(object sender, EventArgs e) 
{ 
    _logger.Error("Unhandled exception", Server.GetLastError()); 
} 
相關問題