WebForm 在 Global.asax 中捕获全局异常

 1         /// <summary>
 2         /// 捕获全局异常
 3         /// </summary>
 4         /// <param name="sender">sender</param>
 5         /// <param name="e">e</param>
 6         protected void Application_Error(Object sender, EventArgs e)
 7         {
 8             Exception ex = Server.GetLastError().GetBaseException();
 9             string ip = Request.ServerVariables.Get("HTTP_X_FORWARDED_FOR") == null ?
10                 Request.ServerVariables.Get("Remote_Addr").ToString().Trim() :
11                 Request.ServerVariables.Get("HTTP_X_FORWARDED_FOR").ToString().Trim();
12             string logpath = Server.MapPath("~/Log/" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt");
13             StringBuilder builder = new StringBuilder();
14             builder.AppendLine(string.Format("==========  {0} Application_Error BEGIN ==========", DateTime.Now));
15             builder.AppendLine("Ip:" + ip);
16             builder.AppendLine("浏览器:" + Request.Browser.Browser.ToString());
17             builder.AppendLine("浏览器版本:" + Request.Browser.MajorVersion.ToString());
18             builder.AppendLine("操作系统:" + Request.Browser.Platform.ToString());
19             builder.AppendLine("页面:" + Request.Url.ToString());
20             builder.AppendLine("错误信息:" + ex.Message);
21             builder.AppendLine("错误源:" + ex.Source);
22             builder.AppendLine("异常方法:" + ex.TargetSite);
23             builder.AppendLine("堆栈信息:" + ex.StackTrace);
24             builder.AppendLine("==========  Application_Error END  ===================");
25 
26             lock (logpath)
27             {
28                 try
29                 {
30                     using (var writer = new StreamWriter(logpath, true))
31                     {
32                         writer.Write(builder.ToString());
33                     }
34                 }
35                 catch
36                 {
37                     // 防止写文件时,文件被人为打开无法写入等
38                     // 记录日志报错不做处理,不应影响用户继续使用
39                 }
40             }
41 
42             Server.ClearError();
43             Response.Redirect("~/Error.htm");
44         }

 

转载于:https://www.cnblogs.com/lyosaki88/p/5507684.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值