成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

log4net在Asp.net MVC4中的使用過程

瀏覽:382日期:2022-06-14 15:00:03
目錄1、安裝log4net插件2、配置web.config文件3、初始化log4net4、定義異常攔截器5、后臺線程輪詢異常隊列,將日志寫入到文件6、控制器中定義異常測試方法7、啟動程序測試action方法1、安裝log4net插件

新建Asp.net MVC4項目,并在Nuget控制臺輸入命令,或者直接搜索log4net在線安裝,安裝log4net

>Install-Package log4net -Version 2.0.15

2、配置web.config文件<?xml version='1.0' encoding='utf-8'?><!-- 有關如何配置 ASP.NET 應用程序的詳細信息,請訪問 https://go.microsoft.com/fwlink/?LinkId=301880 --><configuration> <configSections> <section name='log4net' type='log4net.Config.Log4NetConfigurationSectionHandler,log4net'/> </configSections> <log4net> <root> <level value='ALL'></level> <appender-ref ref='SysAppender'></appender-ref> </root> <logger name='WebLogger'> <!--日志輸出級別限制,只有大于或等于DEBUG級別才記錄日志--> <level value='DEBUG'></level> </logger> <!--以滾動日志方式記錄日志--> <appender name='SysAppender' type='log4net.Appender.RollingFileAppender,log4net'> <!--文件存放路徑,在項目根目錄App_Data下--> <param name='File' value='App_Data/'></param> <!--日志是否追加到文件--> <param name='AppendToFile' value='true'></param> <!--滾動日志文件按照日期風格生成--> <param name='RollingStyle' value='Date'></param> <!--日志文件的命名規則--> <param name='DatePattern' value='&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;'></param> <!--日志名稱是否靜態--> <param name='StaticLogFileName' value='false'></param> <!--日志內容的格式和布局--> <layout type='log4net.Layout.PatternLayout,log4net'><param name='ConversionPattern' value='%d [%t] %-5p %c - %m%n'></param><param name='Header' value='-------------------------header---------------------------'></param><param name='Footer' value='-------------------------footer---------------------------'></param> </layout> </appender> <!--按照控制臺輸出日志--> <appender name='ConsoleApp' type='log4net.Appender.ConsoleAppender,log4net'> <layout type='log4net.Layout.PatternLayout,log4net'><param name='ConversionPattern' value='%d [%t] %-5p %c - %m%n'></param> </layout> </appender> </log4net> <appSettings> <add key='webpages:Version' value='3.0.0.0' /> <add key='webpages:Enabled' value='false' /> <add key='ClientValidationEnabled' value='true' /> <add key='UnobtrusiveJavaScriptEnabled' value='true' /> </appSettings> <system.web> <compilation debug='true' targetFramework='4.6.1' /> <httpRuntime targetFramework='4.6.1' /> <httpModules> <add name='ApplicationInsightsWebTracking' type='Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web' /> </httpModules> </system.web> <runtime> <assemblyBinding xmlns='urn:schemas-microsoft-com:asm.v1'> <dependentAssembly><assemblyIdentity name='Antlr3.Runtime' publicKeyToken='eb42632606e9261f' /><bindingRedirect oldVersion='0.0.0.0-3.5.0.2' newVersion='3.5.0.2' /> </dependentAssembly> <dependentAssembly><assemblyIdentity name='System.Diagnostics.DiagnosticSource' publicKeyToken='cc7b13ffcd2ddd51' /><bindingRedirect oldVersion='0.0.0.0-4.0.2.1' newVersion='4.0.2.1' /> </dependentAssembly> <dependentAssembly><assemblyIdentity name='Newtonsoft.Json' publicKeyToken='30ad4fe6b2a6aeed' /><bindingRedirect oldVersion='0.0.0.0-11.0.0.0' newVersion='11.0.0.0' /> </dependentAssembly> <dependentAssembly><assemblyIdentity name='System.Web.Optimization' publicKeyToken='31bf3856ad364e35' /><bindingRedirect oldVersion='1.0.0.0-1.1.0.0' newVersion='1.1.0.0' /> </dependentAssembly> <dependentAssembly><assemblyIdentity name='WebGrease' publicKeyToken='31bf3856ad364e35' /><bindingRedirect oldVersion='0.0.0.0-1.6.5135.21930' newVersion='1.6.5135.21930' /> </dependentAssembly> <dependentAssembly><assemblyIdentity name='System.Web.Helpers' publicKeyToken='31bf3856ad364e35' /><bindingRedirect oldVersion='1.0.0.0-3.0.0.0' newVersion='3.0.0.0' /> </dependentAssembly> <dependentAssembly><assemblyIdentity name='System.Web.WebPages' publicKeyToken='31bf3856ad364e35' /><bindingRedirect oldVersion='1.0.0.0-3.0.0.0' newVersion='3.0.0.0' /> </dependentAssembly> <dependentAssembly><assemblyIdentity name='System.Web.Mvc' publicKeyToken='31bf3856ad364e35' /><bindingRedirect oldVersion='1.0.0.0-5.2.4.0' newVersion='5.2.4.0' /> </dependentAssembly> </assemblyBinding> </runtime> <system.webServer> <modules> <remove name='TelemetryCorrelationHttpModule' /> <add name='TelemetryCorrelationHttpModule' type='Microsoft.AspNet.TelemetryCorrelation.TelemetryCorrelationHttpModule, Microsoft.AspNet.TelemetryCorrelation' preCondition='integratedMode,managedHandler' /> <remove name='ApplicationInsightsWebTracking' /> <add name='ApplicationInsightsWebTracking' type='Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web' preCondition='managedHandler' /> </modules> <validation validateIntegratedModeConfiguration='false' /> </system.webServer> <system.codedom> <compilers> <compiler language='c#;cs;csharp' extension='.cs' type='Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' warningLevel='4' compilerOptions='/langversion:default /nowarn:1659;1699;1701' /> <compiler language='vb;vbs;visualbasic;vbscript' extension='.vb' type='Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' warningLevel='4' compilerOptions='/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+' /> </compilers> </system.codedom></configuration>

日志級別分類(從高到低):OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL

3、初始化log4net

在Global.asax中初始化log4net配置

log4net.Config.XmlConfigurator.Configure();

4、定義異常攔截器

自定義異常攔截器,出現控制器action方法調用出現異常時,將異常信息統一加入到全局隊列中,避免日志寫入文件并發沖突。

public class MyErrorAttribute:HandleErrorAttribute {public static Queue<Exception> ExceptionQueue = new Queue<Exception>();public override void OnException(ExceptionContext filterContext){ ExceptionQueue.Enqueue(filterContext.Exception); base.OnException(filterContext);} }

將全局默認異常處理器替換為自己定義的。

public class FilterConfig {public static void RegisterGlobalFilters(GlobalFilterCollection filters){ //filters.Add(new HandleErrorAttribute());//默認異常處理器 filters.Add(new MyErrorAttribute());//自定義異常處理器} }5、后臺線程輪詢異常隊列,將日志寫入到文件

啟動類Global.asax.cs文件中定義后臺線程,處理異常隊列中日志的輸出

//啟動后臺線程,周期性輪詢異常隊列,將異常輸出到文件 ThreadPool.QueueUserWorkItem(o => {while(true){ if(MyErrorAttribute.ExceptionQueue.Count>0) {Exception ex = MyErrorAttribute.ExceptionQueue.Dequeue();if(ex!=null){ ILog log = LogManager.GetLogger('testError'); log.Error(ex.ToString());}else{ Thread.Sleep(50);} } else {Thread.Sleep(50); }} });6、控制器中定義異常測試方法public ActionResult TestLog(){ int result = 0; int x = 1, y = 0; result = x / y; return View();}7、啟動程序測試action方法

查看項目根目錄App_Data,生成了日志文件Logs_20230520.txt

查看日志內容

到此這篇關于log4net在Asp.net MVC4中的使用的文章就介紹到這了,更多相關Asp.net MVC4使用log4net內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: ASP.NET
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
精品久久久三级丝袜| 欧美一区国产在线| 国产美女精品一区二区三区| 亚洲一区二区在线看| 国产精品美日韩| 精品日韩99亚洲| 91丨九色porny丨蝌蚪| 午夜精品一区在线观看| 国产调教视频一区| 欧美一区二区观看视频| 色综合久久久久网| 亚洲国产黄色| 午夜精品影院| 国产精品久久毛片| 亚洲国产精品日韩| 亚洲欧洲综合另类| 日韩亚洲欧美精品| 亚洲一区二区精品视频| 国产美女精品| 日韩av中文字幕一区二区三区| 久久午夜视频| 蜜桃一区二区三区在线观看| 一本大道久久精品懂色aⅴ| 午夜欧美在线一二页| 一本一道久久a久久精品 | 懂色av一区二区在线播放| 日韩欧美国产综合一区 | 亚洲国产第一| 亚洲国产精品尤物yw在线观看| 亚洲美女偷拍久久| 色猫猫国产区一区二在线视频| 国产日韩一区二区三区在线播放| 国内精品久久久久国产盗摄免费观看完整版 | 国产精品久久久久一区 | 欧美日韩高清在线一区| 波多野结衣亚洲| 成人激情视频网站| 成人免费高清视频在线观看| 国产精品一二三区| 国产美女主播视频一区| 国产一区二三区| 国产一级精品在线| 国产91丝袜在线播放九色| 国产自产v一区二区三区c| 国产精品中文字幕日韩精品| 国产精品一区专区| 国产成人小视频| 成人免费高清视频| 欧美xxx在线观看| 欧美色综合网| 国产婷婷精品| 色婷婷综合久久久久中文 | 色视频欧美一区二区三区| 久久国产一区二区| 在线一区二区三区四区| 91极品美女在线| 欧美日韩欧美一区二区| 6080午夜不卡| 久久日一线二线三线suv| 精品久久久久久久久久久久久久久| 精品国产一区二区在线观看| 欧美激情一二三区| 亚洲精品视频在线观看网站| 亚洲va在线va天堂| 极品美女销魂一区二区三区免费| 国产精品亚洲综合一区在线观看| 成人黄色免费短视频| 91女神在线视频| 影音先锋久久精品| 一本一道波多野结衣一区二区| 91国偷自产一区二区使用方法| 欧美日韩高清在线| 久久久亚洲欧洲日产国码αv| 国产精品日产欧美久久久久| 亚洲一区二区三区美女| 精品在线一区二区三区| 99久久99精品久久久久久| 激情亚洲网站| 色www精品视频在线观看| 制服丝袜成人动漫| 国产欧美综合在线观看第十页 | 国产精品五月天| 午夜久久久影院| 丰满少妇久久久久久久| 韩日精品在线| 久久亚洲国产精品日日av夜夜| 欧美一区二区三区免费大片| 国产欧美一区二区三区沐欲 | 亚洲一区二区精品久久av| 久久精品国产精品亚洲精品| a4yy欧美一区二区三区| 一本久道综合久久精品| 欧美午夜精品久久久久久孕妇| 日韩欧美在线123| 亚洲激情网站免费观看| 国产一区二区调教| 亚洲精选一区| 欧美一区2区视频在线观看| 中文字幕在线观看不卡| 久久国产精品99精品国产| 成人福利电影精品一区二区在线观看| 国产精品美女久久福利网站| 欧美日韩国产高清一区二区| 日韩视频三区| 成人少妇影院yyyy| 日精品一区二区| 国产精品久久久一本精品| 欧美巨大另类极品videosbest| 日韩和欧美一区二区| 国产日韩高清一区二区三区在线| 国产福利一区二区三区| 亚洲永久精品国产| 国产三级精品在线| 欧美三区免费完整视频在线观看| 午夜精品久久99蜜桃的功能介绍| 偷拍日韩校园综合在线| 欧美国产精品劲爆| 这里是久久伊人| 亚洲欧美不卡| 欧美三级特黄| 福利一区福利二区| 日本欧美久久久久免费播放网| 亚洲欧洲精品一区二区三区不卡| 7777精品伊人久久久大香线蕉经典版下载| 一区二区三区三区在线| 成人激情文学综合网| 蜜桃久久久久久| 亚洲欧美国产77777| 久久嫩草精品久久久精品| 欧美久久久一区| 蜜桃av一区| 亚洲黄色在线| 色综合久久综合网欧美综合网| 91国产免费观看| 亚洲网址在线| 成人福利在线看| 麻豆成人免费电影| 一区二区三区在线视频免费观看| 久久er99精品| 欧美资源在线| 亚洲人精品午夜| 欧美黄色大片网站| 欧美一二三区在线| 视频在线观看一区| 亚洲每日在线| 国产欧美日韩在线看| 国产高清精品网站| 欧美性猛片aaaaaaa做受| 一区二区三区免费在线观看| 色综合天天综合网国产成人综合天| 欧美三区在线视频| 亚洲第一精品在线| 国产精品嫩草99av在线| 国产情人综合久久777777| 岛国一区二区在线观看| 欧美日韩在线三级| 日本亚洲欧美天堂免费| 国产精品亚洲综合久久| 日韩精品一区二区三区视频在线观看 | 日本不卡免费在线视频| 国产福利一区二区三区| 欧美日韩精品高清| 日韩精品亚洲一区二区三区免费| 中文日韩在线| 亚洲精品福利视频网站| 欧美日韩在线一区二区三区| 亚洲精品在线免费观看视频| 国产盗摄女厕一区二区三区| 7777精品伊人久久久大香线蕉完整版| 青青青爽久久午夜综合久久午夜| 久久蜜桃精品| 日韩1区2区3区| 久久这里只有| 久久丁香综合五月国产三级网站| 欧美在线制服丝袜| 久久91精品国产91久久小草| 欧美视频在线不卡| 国产精品一线二线三线| 91精品国产一区二区三区蜜臀| 国产精品中文字幕一区二区三区| 欧美精品粉嫩高潮一区二区| 国内精品久久久久影院色| 日韩一区二区在线看| 成人免费视频播放| 久久久亚洲午夜电影| 欧美chengren| 中文字幕在线观看不卡| 99xxxx成人网| 天天操天天色综合| 91福利精品视频| 国产麻豆成人传媒免费观看| 欧美成人在线直播| 欧美淫片网站| 亚洲另类春色校园小说| 美女久久一区| 久久精品国产第一区二区三区| 欧美精品视频www在线观看| 高清在线成人网| 国产喂奶挤奶一区二区三区| 亚洲久久一区|