|
原文:http://www.dotNETcurry.com/ShowArticle.ASPx?ID=94&ASPxAutoDetectCookieSupport=1
在我們開(kāi)發(fā)和操作一個(gè)網(wǎng)站的過(guò)程中不可避免會(huì)發(fā)生錯(cuò)誤和失敗的情況. ASP.NET 2.0 提供了跟蹤,instrumentation以及錯(cuò)誤處理機(jī)制來(lái)檢測(cè)和修補(bǔ)程序中的問(wèn)題.
在本文中,我們將通過(guò)一個(gè)簡(jiǎn)單的處理來(lái)記錄在我們的網(wǎng)站中的錯(cuò)誤和異常.我們會(huì)這樣操作:每當(dāng)遇到程序錯(cuò)誤時(shí),將使用者導(dǎo)航到一個(gè)單獨(dú)的頁(yè)面.同時(shí),錯(cuò)誤將被記錄到服務(wù)器上的一個(gè)文本文件.每當(dāng)錯(cuò)誤發(fā)生時(shí),我們將以日志的形式每天記錄.說(shuō)了這么多,讓我們來(lái)看一些代碼.
步驟一:首先創(chuàng)建一個(gè)錯(cuò)誤文件夾用于存放錯(cuò)誤日志文件.鼠標(biāo)右鍵站點(diǎn) > 創(chuàng)建新文件夾.將該文件夾命名為"Error". 如果站點(diǎn)中沒(méi)有 Web.config 文件時(shí),請(qǐng)?zhí)砑右粋€(gè). 右鍵站點(diǎn) > 添加新項(xiàng)目 > Web.config.
步驟二:現(xiàn)在我們要?jiǎng)?chuàng)建一個(gè)錯(cuò)誤處理的代碼.我們只需要右鍵站點(diǎn) > 添加新項(xiàng)目 > 選擇類. 重命名該類為"ErrHandler.cs" ,然后單擊 "添加" 按鈕.當(dāng)你這么操作的時(shí)候,會(huì)彈出一個(gè)對(duì)話框,是否要將這個(gè)類文件保存在"App_Code"里面,我們選擇接受.
步驟三:現(xiàn)在我們?yōu)镋rrHandler.class添加一些功能.該類用于接受錯(cuò)誤信息并將錯(cuò)誤信息保存在一個(gè)文本文件中.每天創(chuàng)建一個(gè)這樣的文本文件.如果已經(jīng)存在相同的文件名時(shí),錯(cuò)誤信息將會(huì)追加到這個(gè)文件中.否則,就創(chuàng)建一個(gè)新文件,并將錯(cuò)誤信息寫(xiě)入該文件.
代碼看來(lái)如下:
/// 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.Curre
nt.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);
}
}
NET技術(shù):【翻譯】使用ASP.NET 2.0記錄錯(cuò)誤,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。