成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_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这里只有久久精品视频| 精品白丝av| 在线成人免费视频| 亚洲女同ⅹxx女同tv| 国产精品一二一区| 性色一区二区| 国产午夜精品久久久久久免费视| 日韩国产一区二| 欧美日韩一区二区三区在线观看免| 色哟哟精品一区| 欧美激情中文不卡| 国产一区二区三区| 亚洲一区二区伦理| 国产欧美一区二区精品性色| 久久se精品一区二区| 亚洲精品久久久久久一区二区| 337p亚洲精品色噜噜狠狠| 中文字幕一区二区5566日韩| 国产精品一线二线三线| 欧美专区一区二区三区| 国产精品区一区二区三| 国产成人在线视频网站| 久久精品国产第一区二区三区最新章节 | 日韩免费观看高清完整版在线观看| 亚洲色图在线播放| 99久久综合狠狠综合久久| 91精彩视频在线| 亚洲精品国产高清久久伦理二区| 91免费国产在线观看| 欧美日韩免费观看一区二区三区 | 久久亚洲精品伦理| 亚洲欧美一区二区三区极速播放| av高清不卡在线| 717成人午夜免费福利电影| 亚洲va欧美va人人爽| 99这里有精品| 国产精品美女久久久久aⅴ| 成人的网站免费观看| 欧美色图天堂网| 午夜电影久久久| 国产精品一区二区a| 亚洲精品免费在线观看| 在线精品一区| 亚洲视频免费观看| 亚洲午夜精品福利| 国产女主播在线一区二区| 9久草视频在线视频精品| 91精品国产综合久久福利| 久久99热狠狠色一区二区| 久久xxxx| 日精品一区二区三区| 西西裸体人体做爰大胆久久久| 亚洲欧洲99久久| 136国产福利精品导航网址| 中文字幕国产一区| 欧美午夜精彩| 日韩毛片在线免费观看| 在线观看欧美一区| 一区二区三区在线影院| 9久re热视频在线精品| 亚洲综合在线观看视频| 国产一区导航| 午夜成人免费电影| 欧美图片一区二区三区| 激情久久五月天| 日韩一级片在线播放| 99免费精品视频| 中文字幕av资源一区| 亚洲精品影院在线观看| 一区二区激情小说| 久久久久综合| 国产乱码精品1区2区3区| 日韩精品一区二区三区视频| 91在线丨porny丨国产| 欧美经典三级视频一区二区三区| 欧美亚韩一区| 亚洲mv在线观看| 欧美日韩亚洲另类| av在线不卡网| 日韩毛片高清在线播放| 国产精品久久久久久久久久直播 | 久久久三级国产网站| 欧美午夜精彩| 婷婷久久综合九色综合绿巨人| 日本二三区不卡| 成人高清免费在线播放| 国产精品国产三级国产aⅴ入口| 9国产精品视频| 久久99精品国产.久久久久| 精品免费日韩av| 亚洲成人在线视频网站| 青青草91视频| 精品第一国产综合精品aⅴ| 日韩午夜精品| 精品一区二区三区免费观看 | 亚洲综合欧美| 国产成人亚洲综合a∨婷婷图片| 中文字幕成人av| 一本到不卡精品视频在线观看| 国产美女在线观看一区| 国产精品丝袜黑色高跟| 老牛国产精品一区的观看方式| 成人国产一区二区三区精品| 亚洲免费色视频| 91麻豆精品国产91久久久久久| 欧美精品日本| 久久国产精品色| 中文字幕亚洲成人| 欧美日产在线观看| 精品91视频| 国产精品1区二区.| 亚洲精品视频免费看| 777奇米四色成人影色区| 激情亚洲网站| 国产成人激情av| 五月婷婷另类国产| 国产欧美精品一区| 欧美日韩国产在线观看| 亚洲国产第一| 成人h精品动漫一区二区三区| 亚洲主播在线观看| 国产丝袜在线精品| 欧美久久久一区| 国产伦理一区| 欧美精品播放| 国产精品自拍在线| 午夜欧美2019年伦理| 中文字幕乱码日本亚洲一区二区 | 亚洲无线视频| 99热精品国产| 狠狠久久亚洲欧美| 亚洲mv在线观看| 综合色天天鬼久久鬼色| 日韩网站在线看片你懂的| 一本到不卡免费一区二区| 在线观看视频免费一区二区三区| 成人sese在线| 国产精品一区二区三区四区| 青青草97国产精品免费观看无弹窗版| 中文字幕在线一区| 国产校园另类小说区| 日韩欧美一区二区在线视频| 色94色欧美sute亚洲线路一久| 国产在线欧美日韩| 91亚洲精品乱码久久久久久蜜桃| 国产最新精品精品你懂的| 日韩国产在线观看| 亚洲国产你懂的| 亚洲精品免费一二三区| 中文字幕欧美一| 亚洲国产高清在线| 久久日韩精品一区二区五区| 欧美一二三区在线| 欧美一区二区二区| 欧美一区二区在线免费播放| 欧美色图片你懂的| 欧美午夜电影在线播放| 欧美曰成人黄网| 久久午夜影视| 91国偷自产一区二区三区观看 | 成人综合婷婷国产精品久久蜜臀| 精品一区二区久久| 国产专区欧美精品| 九色porny丨国产精品| 毛片基地黄久久久久久天堂| 免费三级欧美电影| 免费视频一区二区| 国内精品免费**视频| 精品一区在线看| 国产麻豆一精品一av一免费| 国产乱子轮精品视频| 大桥未久av一区二区三区中文| 国产91精品露脸国语对白| 国产99久久久精品| 99re视频这里只有精品| 欧美1区免费| 亚洲精品视频一区二区三区 | 国产精品亚洲视频| 不卡av免费在线观看| 牛牛国产精品| 999亚洲国产精| 色欧美日韩亚洲| 欧美久久久久久久久久| 日韩一区二区三区在线| 久久免费的精品国产v∧| 中文字幕不卡在线播放| 伊人开心综合网| 玖玖九九国产精品| 成人app网站| 亚洲欧洲日本国产| 色婷婷精品久久二区二区蜜臂av | 亚洲精品一区二区三区蜜桃久| 亚洲一区中文| 制服丝袜av成人在线看| 久久五月婷婷丁香社区| 亚洲综合色在线| 国产一区在线精品| 你懂的亚洲视频|