分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

asp.net mvc中捕获异常和使用log4net日志记录组件

发布时间:2023-09-06 01:55责任编辑:蔡小小关键词:组件

一.  异常处理器的使用

1.在asp.net mvc中的FilterConfig中定义了全局的异常处理

2.上图的异常处理器,可以在web.config文件中激活

3.当然我们也可以自定义一个异常处理器,让它继承HandleErrorAttribute,去重写OnException方法

4.异常处理器定义好了,接下来就要将定义的异常处理器注册给filter

这样就大功告成了

二  log4net日志记录组件的使用

1.首先 还是引入dll文件

2.书写配置文件

先在<configuration>下<configSections>中配置log4net节点

1 <configSections>2 <!--配置log4net节点-->3 ????<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />4 </configSections>
View Code

书写具体配置

 1 <log4net> 2 ????<!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL --> 3 ????<!-- Set root logger level to ERROR and its appenders --> 4 ????<root> 5 ??????<level value="ALL" /> 6 ??????<appender-ref ref="SysAppender" /> 7 ????</root> 8 ????<!-- Print only messages of level DEBUG or above in the packages --> 9 ????<logger name="WebLogger">10 ??????<level value="DEBUG" />11 ????</logger>12 ????<appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net"> ?<!--输出到文件-->13 ??????<param name="File" value="App_Data/" />14 ??????<param name="AppendToFile" value="true" />15 ??????<param name="RollingStyle" value="Date" />16 ??????<param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;" />17 ??????<param name="StaticLogFileName" value="false" />18 ??????<layout type="log4net.Layout.PatternLayout,log4net">19 ????????<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />20 ????????<param name="Header" value="&#xD;&#xA;----------------------header--------------------------&#xD;&#xA;" />21 ????????<param name="Footer" value="&#xD;&#xA;----------------------footer--------------------------&#xD;&#xA;" />22 ??????</layout>23 ????</appender>24 ????<appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net"> <!--输出到控制台-->25 ??????<layout type="log4net.Layout.PatternLayout,log4net">26 ????????<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />27 ??????</layout>28 ????</appender>29 ??</log4net>
View Code

这段代码也是找的别人的,应该够全了吧

3.配置文件写好了,那就该将捕捉到的异常信息记录下来了

 ?protected void Application_Start() ???????{ ???????????log4net.Config.XmlConfigurator.Configure(); ?//读取log4net文件 ???????????AreaRegistration.RegisterAllAreas(); ???????????FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); ???????????RouteConfig.RegisterRoutes(RouteTable.Routes); ???????????BundleConfig.RegisterBundles(BundleTable.Bundles); ???????????//开启一个线程 ????????????//读取异常队列 ????????????//异常队列中有异常 使用log4net记录下来 ???????????//异常队列中没有异常 线程睡一会儿 ???????????ThreadPool.QueueUserWorkItem((state)=> { ???????????????//拿到线程后 读取异常队列 ???????????????while (true) { ???????????????????if (MyExceptionFilter.exQueue.Count>0) { ???????????????????????Exception ex = MyExceptionFilter.exQueue.Dequeue(); ???????????????????????if (ex != null) ???????????????????????{ ???????????????????????????ILog logger = LogManager.GetLogger("errorMsg"); ???????????????????????????logger.Error(ex.ToString()); ???????????????????????} ???????????????????????else ???????????????????????{ ???????????????????????????Thread.Sleep(3000); ???????????????????????} ???????????????????} ?????????????????????else { ???????????????????????Thread.Sleep(3000); ???????????????????} ???????????????} ???????????}); ???????}
View Code

以上代码中 

log4net.Config.XmlConfigurator.Configure();                       //读取log4net文件

ILog logger = LogManager.GetLogger("errorMsg");            //errorMsg是日志的名字

logger.Error(ex.ToString());                                                  //将获取到的异常记录下来

 搞定...

菜鸟第一次写博客,字体这些也不知道多大合适,刚开始截图的代码就凑合看吧...

asp.net mvc中捕获异常和使用log4net日志记录组件

原文地址:https://www.cnblogs.com/zkhbalance/p/9066591.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved