1. 程式人生 > >在ASP.NET MVC中使用Log4Net進行多種HttpCode日誌的記錄

在ASP.NET MVC中使用Log4Net進行多種HttpCode日誌的記錄

參考了以下兩篇文章

總體設計

錯誤型別

錯誤入口

處理方法

Controller中的錯誤

(已經考慮到的)

在try-catch中記錄日誌

顯示HttpCode500錯誤檢視

Controller中的錯誤

(未考慮到的)

在繼承HandleErrorAttribute的類中記錄日誌

顯示HttpCode500錯誤檢視

url地址錯誤

在全域性處理Application_Start方法中處理

顯示HttpCode404錯誤檢視

其他錯誤

在全域性處理Application_Start方法中處理

顯示其他錯誤檢視

第一步:在MVC中使用Log4Net記錄日誌:

1.  建立log4net.config.xml檔案,配置Log4Net的節點。

2.  在Global.asax檔案Application_Start()方法中新增業務功能,該業務來讀取Log4Net配置檔案內容,從而將配置檔案與我們的應用程式聯絡起來(Log4Net注入到我們的應用程式中)。

3.  在Common下新建一個類ErrRecorder,初始化ILog,進行日誌記錄。以後凡是程式中想使用日誌記錄時,直接在try-catch中使用這個類下的WriteError()方法。

這種方法完全是自定義記錄日誌,所有錯誤的捕捉都是自己try-catch的。

第二步:

1.  自己建一個Attribute類,繼承錯誤異常過濾器HandleErrorAttribute。

重寫方法OnException(ExceptionContext filterContext)。  filterContext就是異常上下文  在這個方法中捕獲異常資訊。

2.  新增到全域性過濾器中,filters.Add(new HandleErrorAttribute()) 寫我們自己的異常處理資訊屬性

3.  在Global.asax全域性檔案的Application_Start()方法中使用Log4Net進行日誌記錄(Log4Net是執行緒安全的)

第三步:

在Application_Start中新增Application_Error事件。這個事件是在OnException()事件執行完成之後執行的,可以用來處理Filter遺漏的事件,如沒有找到網頁的404錯誤等