Global.asax的Application_Error實(shí)現(xiàn)錯(cuò)誤記錄/錯(cuò)誤日志的代碼
錯(cuò)誤日志
void Application_Error(object sender, EventArgs e)
{
// 在出現(xiàn)未處理的錯(cuò)誤時(shí)運(yùn)行的代碼
Exception ex = Server.GetLastError().GetBaseException();
StringBuilder str = new StringBuilder();
str.Append("\r\n" + DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss"));
str.Append("\r\n.客戶信息:");
string ip = "";
if (Request.ServerVariables.Get("HTTP_X_FORWARDED_FOR") != null)
{
ip = Request.ServerVariables.Get("HTTP_X_FORWARDED_FOR").ToString().Trim();
}
else
{
ip = Request.ServerVariables.Get("Remote_Addr").ToString().Trim();
}
str.Append("\r\n\tIp:" + ip);
str.Append("\r\n\t瀏覽器:" + Request.Browser.Browser.ToString());
str.Append("\r\n\t瀏覽器版本:" + Request.Browser.MajorVersion.ToString());
str.Append("\r\n\t操作系統(tǒng):" + Request.Browser.Platform.ToString());
str.Append("\r\n.錯(cuò)誤信息:");
str.Append("\r\n\t頁面:" + Request.Url.ToString());
str.Append("\r\n\t錯(cuò)誤信息:" + ex.Message);
str.Append("\r\n\t錯(cuò)誤源:" + ex.Source);
str.Append("\r\n\t異常方法:" + ex.TargetSite);
str.Append("\r\n\t堆棧信息:" + ex.StackTrace);
str.Append("\r\n--------------------------------------------------------------------------------------------------");
//創(chuàng)建路徑
string upLoadPath = Server.MapPath("~/log/");
if (!System.IO.Directory.Exists(upLoadPath))
{
System.IO.Directory.CreateDirectory(upLoadPath);
}
//創(chuàng)建文件 寫入錯(cuò)誤
System.IO.File.AppendAllText(upLoadPath + DateTime.Now.ToString("yyyy.MM.dd") + ".log", str.ToString(), System.Text.Encoding.UTF8);
//處理完及時(shí)清理異常
Server.ClearError();
//跳轉(zhuǎn)至出錯(cuò)頁面
Response.Redirect("~/error.html");
}
- asp.net 在global中攔截404錯(cuò)誤的實(shí)現(xiàn)方法
- Global.cs中自動(dòng)獲取未處理的異常
- 在Global.asax文件里實(shí)現(xiàn)通用防SQL注入漏洞程序(適應(yīng)于post/get請(qǐng)求)
- Global.asax取絕對(duì)路徑的方法
- Global.asax取物理路徑/取絕對(duì)路徑具體方法
- Global.asax的Application_BeginRequest實(shí)現(xiàn)url重寫無后綴的代碼
- c#定時(shí)器和global實(shí)現(xiàn)自動(dòng)job示例
- ASP.net全局程序文件Global.asax用法分析
- ASP.NET中Global和URLReWrite用法
- 在C#中g(shù)lobal關(guān)鍵字的作用及其用法
相關(guān)文章
詳解JQuery Ajax 在asp.net中使用總結(jié)
這篇文章主要介紹了詳解JQuery Ajax 在asp.net中使用總結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01
ASP.NET.4.5.1+MVC5.0設(shè)置系統(tǒng)角色與權(quán)限(一)
這篇文章主要介紹了ASP.NET.4.5.1+MVC5.0設(shè)置系統(tǒng)角色與權(quán)限的部分內(nèi)容,后續(xù)我們將繼續(xù)討論這個(gè)話題,希望小伙伴們喜歡。2015-01-01
使用FreeHost SQL2000網(wǎng)頁管理器出錯(cuò)解決辦法
在您登陸FreeHost SQL2000網(wǎng)頁管理器時(shí),如果提示以下信息: 發(fā)生類型為 System.Web.HttpUnhandledException 的異常2012-01-01
Web.Config文件配置之限制上傳文件大小和時(shí)間的屬性配置
在Web.Config文件中配置限制上傳文件大小與時(shí)間字符串時(shí),是在httpRuntime httpRuntime節(jié)中完成的,需要設(shè)置以下2個(gè)屬性:maxRequestLength屬性與ExecutionTimeout屬性,感興趣的朋友可以了解下,或許對(duì)你有所幫助2013-02-02
Razor TagHelper實(shí)現(xiàn)Markdown轉(zhuǎn)HTML的方法
下面小編就為大家分享一篇Razor TagHelper實(shí)現(xiàn)Markdown轉(zhuǎn)HTML的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-12-12
asp.net 無法獲取的內(nèi)部?jī)?nèi)容,因?yàn)樵搩?nèi)容不是文本 的解決方法
asp.net 無法獲取的內(nèi)部?jī)?nèi)容,因?yàn)樵搩?nèi)容不是文本 的解決方法2009-12-12
asp.net UpdatePanel的簡(jiǎn)單用法
局部更新是ajax技術(shù)的最基本,也是最重要的用法,今天大概把a(bǔ)sp.net ajax中的局部更新控件 updatepanel的用法記錄下,大家可以共同探討2008-11-11
asp.net 相關(guān)文章實(shí)現(xiàn)方法
大家或許會(huì)覺得很驚訝:為什么靈感之源會(huì)討論SQL?或許應(yīng)該這樣說吧:搞業(yè)務(wù)系統(tǒng),不跟SQL扯上關(guān)系似乎比較難。2009-05-05
visual studio 2012安裝配置方法圖文教程 附opencv配置教程
這篇文章主要為大家分享了visual studio 2012安裝配置方法圖文教程,文中附opencv配置教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05
asp.net網(wǎng)站開發(fā)包wq.dll打包下載
這個(gè)wq.dll主要是用來給Web群和C#聯(lián)盟群及GUI群的朋友使用的,其它群和使用控件開發(fā)web的朋友可以直接無視,這個(gè)封裝好的包是一個(gè)基礎(chǔ)開發(fā)包,可以輕松的幫你完成一些小型網(wǎng)站的開發(fā),支持.Net Framework2.0(及以上平臺(tái))。2009-10-10

