2 回答

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊
在全局文件 Global.asax 中做處理。截獲出現(xiàn)異常時(shí)的事件,并自定義處理過程。
參考下面代碼,增加一個(gè)日志的寫入就ok了。
void Application_Error(object sender, EventArgs e)
{
//在出現(xiàn)未處理的錯(cuò)誤時(shí)運(yùn)行的代碼
HttpContext context = ((HttpApplication)sender).Context;
Exception ex = context.Server.GetLastError();
if (ex == null || !(ex is HttpException) || (ex as HttpException).GetHttpCode() == 404)
return;
StringBuilder sb = new StringBuilder();
try
{
sb.Append("Url : " + context.Request.Url);
sb.Append(Environment.NewLine);
sb.Append(" Raw Url :" + context.Request.RawUrl);
sb.Append(Environment.NewLine);
while (ex != null)
{
sb.Append("Message : " + ex.Message);
sb.Append(Environment.NewLine);
sb.Append("Source : " + ex.Source);
sb.Append(Environment.NewLine);
sb.Append("StackTrace : " + ex.StackTrace);
sb.Append(Environment.NewLine);
sb.Append("TagetSite : " + ex.TargetSite);
sb.Append(Environment.NewLine);
ex = ex.InnerException;
}
}
catch (Exception ex2)
{
sb.Append("Error logging error : " + ex2.Message);
}
if (OASettings.Instance.EnableErrorLogging)
Utils.Log(sb.ToString());
context.Items["LastErrorDetails"] = sb.ToString();
context.Response.StatusCode = 500;
Server.ClearError();
context.Server.Transfer("~/error.aspx");
}

TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個(gè)贊
你可以看看我的這篇文章:使用log4net完成程序異常日志記錄(使用SQLite數(shù)據(jù)庫記錄和普通文本記錄)
然后根據(jù)你的需求進(jìn)行些處理。
可以寫個(gè)程序在記錄了異常后實(shí)時(shí)提醒。
- 2 回答
- 0 關(guān)注
- 620 瀏覽
添加回答
舉報(bào)