global中捕获异常
2018-06-18 04:45:42来源:未知 阅读 ()
前言:由于现在日志非常重要,但是在哪里打写日志比较好呢,我选择的是在global中,把错误代码网上抛,而不是在底层写大量的try catch然后在catch中来写日志,每个catch中的写日志这样就会避免了很多重复代码。当然这是目前我们采取的一个方法,大家可以提出更好地方法来管理日志,下面我开始写代码
第一步:尽量抛弃项目中try catch。看下代码
private void ExceptionTestOne() { int a = 1; int b = 0; int c = a/b; }
上面代码会抛一个异常
第二步:如果项目中必须用try catch怎么办,因为有时候连接wcf的时候如果出现异常时候我们需要关闭连接避免堵塞,那么我们就采取抛异常的方法
private void ExceptionTestTwo() { try { List<Simple> simples = null; simples.Add(new Simple() { Name = "发生异常" }); } catch (Exception ex) { throw new Exception("",ex); } }
第三步:我们新建一个global.asax 在Application_Error中把异常信息加入队列中 如下
//创建一个静态的队列记录把异常都放在队列中 private static Queue<Exception> queue = new Queue<Exception>(); protected void Application_Error(object sender, EventArgs e) { Exception exp = Server.GetLastError(); if (exp != null) { queue.Enqueue(exp); } Server.ClearError(); }
第四步:异常信息加入日志(这里为了简单就写入txt文本中了)
protected void Application_Start(object sender, EventArgs e) { ThreadPool.QueueUserWorkItem(a => { while (true) { try { if (queue.Count > 0) { Exception ex = queue.Dequeue(); WriteLog(ex); } else { System.Threading.Thread.Sleep(TimeSpan.FromSeconds(3)); } } catch (Exception ex) {
WriteLog(ex);
} } }); }
private void WriteLog(Exception ex) { if (!File.Exists(@"E:\C#系列\ExceptionDealWith\ExceptionDealWith\Log.txt")) { FileStream fs1 = new FileStream(@"E:\C#系列\ExceptionDealWith\ExceptionDealWith\Log.txt", FileMode.Create, FileAccess.Write);//创建写入文件 StreamWriter sw = new StreamWriter(fs1); sw.WriteLine(ex.Message);//开始写入值 sw.Close(); fs1.Close(); } else { StreamWriter sr = File.AppendText(@"E:\C#系列\ExceptionDealWith\ExceptionDealWith\Log.txt"); sr.WriteLine(ex.Message); sr.Close(); } }
当然接入错误信息你可以多定义几个比喻ip地址,堆栈信息错误等基本就是这么多了。这是基本思路。有日志了我就就可以根据时间,ip等进行查询日志日志信息
下载
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Java笔记:数组,异常,泛型 2020-06-08
- Spring Cloud Gateway 全局通用异常处理 2020-06-08
- SpringCloud异常处理统一封装我来做-使用篇 2020-05-23
- 异常、堆内存溢出、OOM的常见情况及解决方案 2020-05-19
- 异常、多线程、集合类、泛型 2020-05-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash