在本文中,我們將通過一個簡單的處理來記錄在我們的網站中的錯誤和異常.我們會這樣操作:每當遇到程序錯誤時,將使用者導航到一個單獨的頁面.同時,錯誤將被記錄到服務器上的一個文本文件.每當錯誤發生時,我們將以日志的形式每天記錄.說了這麼多,讓我們來看一些代碼。
步驟一:首先創建一個錯誤文件夾用於存放錯誤日志文件.鼠標右鍵站點 > 創建新文件夾.將該文件夾命名為"Error". 如果站點中沒有 Web.config 文件時,請添加一個. 右鍵站點 > 添加新項目 > Web.config。
步驟二:現在我們要創建一個錯誤處理的代碼.我們只需要右鍵站點 > 添加新項目 > 選擇類. 重命名該類為"ErrHandler.cs" ,然後單擊 "添加" 按鈕.當你這麼操作的時候,會彈出一個對話框,是否要將這個類文件保存在"App_Code"裡面,我們選擇接受。
步驟三:現在我們為ErrHandler.class添加一些功能.該類用於接受錯誤信息並將錯誤信息保存在一個文本文件中.每天創建一個這樣的文本文件.如果已經存在相同的文件名時,錯誤信息將會追加到這個文件中.否則,就創建一個新文件,並將錯誤信息寫入該文件。
代碼看來如下:
/// Handles error by accepting the error message /// Displays the page on which the error occured public static void WriteError(string errorMessage) { try { string path = "~/Error/" + DateTime.Today.ToString("dd-mm-yy") + ".txt"; if (!File.Exists(System.Web.HttpContext.Current.Server.MapPath(path))) { File.Create(System.Web.HttpContext.Current.Server.MapPath(path)).Close(); } using (StreamWriter w = File.AppendText(System.Web.HttpContext.Current.Server.MapPath(path))) { w.WriteLine("\r\nLog Entry : "); w.WriteLine("{0}", DateTime.Now.ToString(CultureInfo.InvariantCulture)); string err = "Error in: " + System.Web.HttpContext.Current.Request.Url.ToString() + ". Error Message:" + errorMessage; w.WriteLine(err); w.WriteLine("__________________________"); w.Flush(); w.Close(); } } catch (Exception ex) { WriteError(ex.Message); } }
這就是我們的ErrHandler類了.然後我們來看看如何使用這個類和在Page級中(Application級中)處理錯誤。