精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

關于面向切面編程的部分內容-錯誤處理機制

開發 后端 項目管理
但是把錯誤信息寫到內存是很快。寫到硬盤上就有一堆的問題。比如說讀寫慢、并發問題。

錯誤處理機制。

面對多個web服務器,多線程處理,我們想把錯誤信息記錄到一個txt文檔中。

但是把錯誤信息寫到內存是很快。寫到硬盤上就有一堆的問題。比如說讀寫慢、并發問題。

今天我們就利用這個實現錯誤處理 此文以MVC為例

1、首先要在  golable  文件的  protected void Application_Start()


注冊一個錯誤處理機制。

MVC中自帶一個  過濾器

FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);

image

這里面 我們看到這個過濾器

2、其實就是在 app_Start文件夾下面 的 FilterConfig.cs 文件

image

3、 打開FilterConfig.cs文件

就寫了一個注冊事件。我們看得到 這個是對錯誤處理機制

image

(當然 ,你們看到的是  HandleErrorAttribute 這個類)

4、所以你們可能覺得奇怪,我們來查看MyExceptionAttribut的定義看一下

image

繼承了HandleErrorAttribute

這里我把這個類的代碼貼一下


 

  1. public class MyExceptionAttribute : HandleErrorAttribute 
  2.     { 
  3.         //  private static object obj = new object(); 
  4.         public static ConcurrentQueue<Exception> ExceptionQueue = new ConcurrentQueue<Exception>();//定義隊列 
  5.  
  6.         /// <summary> 
  7.         /// 在該方法中捕獲異常。 
  8.         /// </summary> 
  9.         /// <param name="filterContext"></param> 
  10.         public override void OnException(ExceptionContext filterContext) 
  11.         { 
  12.  
  13.             base.OnException(filterContext); 
  14.             Exception ex = filterContext.Exception;//捕獲異常信息。 
  15.             //將異常信息寫到隊列中。 
  16.             ExceptionQueue.Enqueue(ex); 
  17.             //跳轉到錯誤頁面. 
  18.             filterContext.HttpContext.Response.Redirect("/Error.html"); 
  19.  
  20.            
  21.  
  22.         } 
  23.     } 
  24.  
  25.   

主要是定義一個靜態 隊列  ConcurrentQueue

(當然你也可以用 Queue。但是微軟說 這個ConcurrentQueue 比 Queue  安全。好像是線程安全的,一堆堆的理論,說白了就是用ConcurrentQueue 更安全)

這樣所有的錯誤就都在這個隊列里面了。(就是內存)

這樣總不行吧。內存 斷電就沒有了的啊。

所以我們要想把資料存到 硬盤中。

5、現在又要在

  golable  文件的  protected void Application_Start()


中注冊一個消費線程(這句話后面會解釋,看不懂就繼續)就是在 protected void Application_Start()中加入這些代碼,***放最前面。

內容就是線程池開啟一個線程 從剛剛定義的 MyExceptionAttribute的 ExceptionQueue隊列里面取出項來。

將錯誤信息最加到文件后面。如果隊列為空,就線程停留3秒。


 

  1. string filePath = Server.MapPath("/Log/"); 
  2.             ThreadPool.QueueUserWorkItem((a) => 
  3.             { 
  4.  
  5.                 while (true)//注意:線程不能結束。后面寫到隊列中的數據沒法處理。 
  6.                 { 
  7.  
  8.     // 這里可以加一條   if (MyExceptionAttribute.ExceptionQueue.Count() > 0) 
  9. //{  發送郵件到管理員} 
  10.                     if (MyExceptionAttribute.ExceptionQueue.Count() > 0
  11.                     { 
  12.                         // Exception ex= MyExceptionAttribute.ExceptionQueue.Dequeue();//從隊列中取出數據. 
  13.                         Exception ex = null
  14.                         bool isResult = MyExceptionAttribute.ExceptionQueue.TryDequeue(out ex); 
  15.                         if (ex != null && isResult) 
  16.                         { 
  17.                             string fullPath = filePath + DateTime.Now.ToString("yyyy-MM-dd") + ".txt"
  18.                             File.AppendAllText(fullPath, ex.ToString()); 
  19.                          //   ILog logger = LogManager.GetLogger("errorMsg"); 
  20.                           //  logger.Error(ex.ToString()); 
  21.                         } 
  22.                         else 
  23.                         { 
  24.                             Thread.Sleep(3000); 
  25.                         } 
  26.                     } 
  27.                     else 
  28.                     { 
  29.                         Thread.Sleep(3000);//避免造成CPU的空轉。 
  30.                     } 
  31.                 } 
  32.  
  33.   
  34.  
  35.             }, filePath); 

6、總結。

這個就是一個生產者消費者的模式。

生產者就是 產生錯誤的源頭。 消費者就是注冊保存日志的方法。

中間有一個倉庫就是    那個靜態錯誤隊列。

可以看到 系統產生的錯誤臨時存放于內存中。然后一個新的線程 去讀寫靜態錯誤隊列。

正常情況 需要在錯誤隊列里面加一個錯誤隊列數字大于1000條的時候  發警告到郵箱的功能。那樣感覺有點問題復雜化了,畢竟這里只是講錯誤處理。

7、log4net 我前面講過的一個開源框架 記錄錯誤很好。

這里提供一個連接    log4net配置方法你可以把那個一起并到這里。那么就會有

把protected void Application_Start()中添加 的代碼

改成。注意是改成:

 

  1. log4net.Config.XmlConfigurator.Configure(); 
  2.             //開始一個線程,查看異常隊列 
  3.             string filePath = Server.MapPath("/Log/"); 
  4.             ThreadPool.QueueUserWorkItem((a) => 
  5.             { 
  6.  
  7.                 while (true)//注意:線程不能結束。后面寫到隊列中的數據沒法處理。 
  8.                 { 
  9.                     if (MyExceptionAttribute.ExceptionQueue.Count() > 0
  10.                     { 
  11.                         // Exception ex= MyExceptionAttribute.ExceptionQueue.Dequeue();//從隊列中取出數據. 
  12.                         Exception ex = null
  13.                         bool isResult = MyExceptionAttribute.ExceptionQueue.TryDequeue(out ex); 
  14.                         if (ex != null && isResult) 
  15.                         { 
  16.                             string fullPath = filePath + DateTime.Now.ToString("yyyy-MM-dd") + ".txt"
  17.                             //File.AppendAllText(fullPath, ex.ToString()); 
  18.                             ILog logger = LogManager.GetLogger("errorMsg"); 
  19.                             logger.Error(ex.ToString()); 
  20.                         } 
  21.                         else 
  22.                         { 
  23.                             Thread.Sleep(3000); 
  24.                         } 
  25.                     } 
  26.                     else 
  27.                     { 
  28.                         Thread.Sleep(3000);//避免造成CPU的空轉。 
  29.                     } 
  30.                 } 
  31.  
  32.   
  33.  
  34.             }, filePath); 

這樣就會按照你的要求把錯誤日志記錄到

app_data文件夾下面。(前提是你有未處理的錯誤 。呵呵)

看到下圖就成功了

image

題外話(

沒有就自己創一個   var s=3/0;

這樣就可以了。

 

責任編輯:王雪燕 來源: 博客園
相關推薦

2009-06-19 16:20:14

ASP.NET錯誤處理

2009-07-31 11:28:42

錯誤處理機制ASP.NET

2021-03-02 09:12:25

Java異常機制

2009-07-19 09:05:03

魔獸世界審批

2023-04-20 11:30:12

2012-04-13 09:32:19

微軟路線圖

2025-07-07 03:00:00

異常處理Result模式

2012-02-10 10:32:33

JavaSpring

2020-08-20 10:16:56

Golang錯誤處理數據

2009-08-24 09:46:40

面向切面編程AOP

2020-09-15 08:28:17

JavaScript錯誤處理

2021-09-27 15:33:48

Go 開發技術

2021-09-27 10:04:03

Go程序處理

2021-04-14 07:08:14

Nodejs錯誤處理

2011-03-17 09:20:05

異常處理機制

2025-06-09 08:01:12

2023-10-26 15:49:53

Go日志

2024-03-27 08:18:02

Spring映射HTML

2020-09-14 08:35:36

JavaScript編程開發

2013-09-17 10:37:03

AOPAOP教程理解AOP
點贊
收藏

51CTO技術棧公眾號

国产一区二区在线观看免费播放| 日韩在线不卡视频| 99精品免费在线观看| 成人免费在线视频网| 十八禁一区二区三区| 一区二区三区无毛| 午夜一区二区三区在线观看| 欧美在线一区二区三区四区| 99草在线视频| 久久精品官网| 欧美大片免费观看| 中文字幕人妻一区二区三区在线视频| 亚洲色图图片| 色婷婷综合久久久中文一区二区| 9l视频自拍9l视频自拍| 青青草在线播放| 国产一区二区免费视频| 日韩av免费看网站| 久久久久久久久久久久久久免费看 | 久久国产精品电影| 女人被狂躁c到高潮| 国产精选久久| 欧美性高清videossexo| cao在线观看| 高潮毛片在线观看| 中文字幕不卡在线观看| 精品国产综合久久| 精品毛片在线观看| 美女mm1313爽爽久久久蜜臀| 欧美亚洲国产视频小说| caoporn国产精品免费公开| 国产午夜在线一区二区三区| www.26天天久久天堂| 亚洲成国产人片在线观看| 91香蕉视频网址| 97视频在线观看网站| 2024国产精品| 九色视频成人porny| 亚洲黄色小说网址| 国产乱码精品一区二区三区五月婷| 国产成人高潮免费观看精品| 日韩av在线播放观看| 中国精品18videos性欧美| 日韩最新av在线| 大吊一区二区三区| 久久神马影院| www.久久撸.com| 综合 欧美 亚洲日本| 激情婷婷综合| 在线精品高清中文字幕| 精品人妻无码一区| 国产中文精品久高清在线不| 亚洲欧洲av一区二区| 熟女少妇一区二区三区| 久久93精品国产91久久综合| 亚洲欧美另类人妖| 免费看黄色av| 无码精品黑人一区二区三区 | 国产精品主播视频| 波多野结衣电车| 男女男精品视频| 国产精品入口免费视| 男操女视频网站| 美女视频黄久久| 成人在线观看视频网站| 国产精品无码久久av| 国产一区 二区 三区一级| 3d蒂法精品啪啪一区二区免费| 99国产成人精品| 成人精品鲁一区一区二区| 国产精品一区二区免费看| 天天av综合网| 国产人伦精品一区二区| 亚洲欧洲一区二区| av网站免费在线观看| 亚洲一区二区三区自拍| 亚洲国产精品综合| 超碰在线最新| 狠狠躁夜夜躁久久躁别揉| 欧美一级片中文字幕| 欧美视频第一| 欧美成人欧美edvon| 亚洲第一页av| 日韩欧美一区二区三区免费看| 日韩视频第一页| 成人免费看片98| 视频一区视频二区中文字幕| 成人日韩在线电影| 四虎精品在永久在线观看| 国产欧美一区二区精品性色| 99热一区二区三区| av小说在线播放| 欧美亚洲综合色| 91porn在线| 欧美日韩高清| 欧美另类第一页| 男人天堂2024| 国产成人一区在线| 国产精品麻豆网站| 亚洲a成v人在线观看| 欧美熟妇交换久久久久久分类 | 91精品国产一区二区三区香蕉| 免费看三级黄色片| 欧美少妇性xxxx| 欧美国产精品人人做人人爱| 国产99免费视频| 高清视频一区二区| 亚洲激情啪啪| free性m.freesex欧美| 欧美日韩在线不卡| 91视频啊啊啊| 亚洲在线久久| 国产精品视频网址| 日本中文字幕一区二区有码在线| 最近中文字幕一区二区三区| 国产在线观看福利| 伊人久久大香线蕉av超碰| 中文字幕自拍vr一区二区三区| 麻豆视频在线观看| 激情丁香综合五月| 亚洲成人自拍| 久久爱91午夜羞羞| 亚洲精品在线一区二区| 亚洲人与黑人屁股眼交| 久久精品麻豆| 久久精品国产一区二区三区不卡| 亚洲丝袜精品| 91精品午夜视频| 91香蕉国产视频| 视频一区在线播放| 欧美一区国产一区| 中文在线а√天堂| 精品性高朝久久久久久久| 国产一级免费av| 国产成人免费视频一区| 国产又大又长又粗又黄| 玖玖精品在线| 中文字幕九色91在线| 激情视频网站在线观看| 91丝袜呻吟高潮美腿白嫩在线观看| 久久久久久久免费视频| 91麻豆精品国产综合久久久| 日韩在线激情视频| 一级片视频免费| 国产精品初高中害羞小美女文| 午夜免费精品视频| 精品国产乱码久久久久久1区2匹| 亚洲精品一二三| 日本不卡视频在线播放| 国精品人妻无码一区二区三区喝尿| 亚洲丝袜精品丝袜在线| 九九热精品国产| 91成人精品| 2014亚洲精品| www欧美xxxx| 亚洲国产精品国自产拍av秋霞| 国产精品99精品无码视| 成人美女视频在线看| 欧美成人免费在线观看视频| 久久精品色综合| 欧美亚洲国产精品| 国产一级网站视频在线| 欧美性欧美巨大黑白大战| 日韩在线视频免费看| 国产精品亚洲视频| 成人午夜免费在线| 最新国产一区| 国产噜噜噜噜久久久久久久久| 免费av在线网址| 日韩欧美123| 日本五十路女优| 久久久精品国产免大香伊| 无需播放器的av| 91不卡在线观看| 国产美女99p| 高清毛片在线观看| 亚洲视频axxx| 国产孕妇孕交大片孕| 亚洲影院久久精品| 男生裸体视频网站| 久久99国产精品久久| 日本一级黄视频| 国产99久久久国产精品成人免费| 国产日韩欧美在线播放| 日韩电影免费观看| 亚洲女人被黑人巨大进入al| 国产又黄又猛又爽| 黑人狂躁日本妞一区二区三区| 精品成人无码一区二区三区| 国产精品一区不卡| 国产精品免费成人| 欧美在线亚洲综合一区| 久久国产主播精品| 精品国产亚洲一区二区三区在线| 国内自拍欧美激情| 欧美成人hd| 日韩成人在线播放| va视频在线观看| 一本久久a久久免费精品不卡| 中国毛片直接看| 久久免费美女视频| 91人人澡人人爽| 免费视频一区二区| 久久精品夜色噜噜亚洲a∨| 免费看的黄色大片| 91精品秘密在线观看| 久久久福利视频| 日本一区二区三区播放| 国产精品99导航| 超碰在线99| 欧美成人h版在线观看| 成人性爱视频在线观看| 亚洲精品国精品久久99热一| 国产男男gay体育生网站| 91极品视觉盛宴| 国产无套粉嫩白浆内谢| 中文字幕一区二区三区四区| 182在线视频| 国产老肥熟一区二区三区| 亚洲精品怡红院| 久久激情视频| 日韩精品―中文字幕| 欧美日本久久| 桥本有菜av在线| 黑人操亚洲人| 日本高清不卡三区| 神马香蕉久久| 国产在线一区二区三区播放| 亚洲三区欧美一区国产二区| 成人免费观看a| 国产成人毛片| 国产精品亚洲精品| 在线国产成人影院| 欧美在线视频一区| 美女视频在线免费| 高清欧美性猛交xxxx黑人猛交| 先锋成人av| 欧美大片欧美激情性色a∨久久| 国产秀色在线www免费观看| 中文字幕自拍vr一区二区三区| 福利在线午夜| 国产一区二区三区在线视频| 精品亚洲综合| 在线视频一区二区| h视频网站在线观看| 中文字幕亚洲国产| av网站在线播放| 中文字幕久精品免费视频| 91欧美在线视频| 日韩在线免费视频观看| 欧美r级在线| 欧美乱妇高清无乱码| 久草在线视频资源| 韩国精品久久久999| 久草免费在线视频| 国产ts一区二区| 欧美日韩精品一区二区三区视频| 国产国语videosex另类| 91九色综合| 成人写真视频福利网| 亚洲一区二区免费在线观看| 高清国产一区| 综合亚洲色图| 在线欧美一区二区| 欧美做受xxxxxⅹ性视频| 国产欧美综合在线观看第十页| 亚洲AV无码成人精品区明星换面| 欧美国产一区视频在线观看| 久久久精品少妇| 一区二区三区精品在线| 日韩成人在线免费视频| 一本色道久久综合狠狠躁的推荐 | 国产成人无码精品久久二区三| 久久精品一区八戒影视| 少妇高潮惨叫久久久久| 亚洲精品免费播放| 国产区一区二区三| 欧美日韩亚洲综合一区二区三区| 国产巨乳在线观看| 精品国产污网站| 成年人免费在线视频| 久久成年人视频| 色戒汤唯在线观看| 国产精品永久免费观看| 亚洲一区电影| 日本免费一区二区三区| 欧美1区2区| 国产淫片av片久久久久久| 欧美96一区二区免费视频| 久久aaaa片一区二区| 久久久久99精品一区| 久久福利免费视频| 欧美性猛交xxxx| 国产av一区二区三区| 亚洲毛片一区二区| 一区二区三区伦理| 国产成人综合一区二区三区| 无码国模国产在线观看| 日本福利一区二区三区| 伊人成人网在线看| 潘金莲激情呻吟欲求不满视频| 成人av片在线观看| 国产精品一区二区亚洲| 欧美网站在线观看| 精品人妻无码一区二区三区蜜桃一 | 亚洲免费av一区| 久久亚洲一区二区三区四区| 国产探花在线免费观看| 日本久久电影网| 国产77777| 欧美成年人网站| 久久久久久一区二区三区四区别墅| 精品国产乱码久久久久久丨区2区 精品国产乱码久久久久久蜜柚 | 欧美日韩高清一区二区| 欧洲一级在线观看| 欧美激情手机在线视频 | 久久久一本精品99久久精品| 亚洲精品电影| 亚洲欧美日韩精品一区| 国产三级精品在线| 五月天婷婷激情| 国产亚洲在线| 久久爱av电影| 国语精品一区| 毛片毛片毛片毛片毛| 中文乱码免费一区二区| 久久青青草原亚洲av无码麻豆| 亚洲精品一区二区三区四区高清| 国产福利视频在线观看| 国产美女久久精品| 清纯唯美日韩| wwwwxxxx日韩| 国产女主播视频一区二区| 日本久久综合网| 亚洲色图综合网| 韩国三级一区| 欧美一区1区三区3区公司| 999亚洲国产精| 挪威xxxx性hd极品| 亚洲图片欧美综合| 欧美 日韩 国产 在线| 久久久久久久久久av| 在线播放一区二区精品视频| 超碰人人爱人人| 国产成人综合亚洲网站| 欧美精品一级片| 精品精品国产高清a毛片牛牛| 午夜伦理在线视频| 国产精品10p综合二区| 亚洲黄色成人| 久久久久久久久免费看无码| 日韩欧美第一页| 精品视频一二区| 国产精品综合网站| 亚州av乱码久久精品蜜桃| 三级黄色片播放| 亚洲专区一二三| 天堂在线观看av| 日本免费久久高清视频| 日韩88av| 超碰在线资源站| 亚洲综合另类小说| 天天干免费视频| 日韩美女免费视频| 日韩av密桃| 黑人无套内谢中国美女| 亚洲成av人片在线观看| 日韩电影在线观看完整版| 国产精品久久一区主播| 亚洲第一天堂| 国产伦精品一区三区精东| 一本色道亚洲精品aⅴ| jizz在线免费观看| 91入口在线观看| 国产亚洲精品bv在线观看| 欧美三级视频网站| 欧美一区二区三区在线看| 9999精品成人免费毛片在线看| 欧美理论一区二区| 九九精品视频在线看| 久久久久久蜜桃| 亚洲无亚洲人成网站77777| 日本久久二区| 久艹视频在线免费观看| 国产午夜精品一区二区三区四区| 亚洲一区中文字幕永久在线| 欧美黑人视频一区| 国产99精品| 日韩黄色一区二区| 欧美唯美清纯偷拍| 91在线三级| 亚洲免费不卡| av一区二区久久| 亚洲天堂aaa| 欧美亚洲国产另类| 亚洲国产不卡| 国产精品久久久久无码av色戒| 制服丝袜亚洲色图| a级网站在线观看| 国产成人av网站|