ASP.NET MVC利用log4net记录错误日志信息的简单运用
2018-10-08 10:11
696 查看
1、在NuGet中下载log4net包
2、在配置文件中配置以下代码:
[code]<configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <!--日志记录组建配置--> <log4net> <!--定义输出到文件中--> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <!--定义文件存放位置--> <file value="Logs\\Tracer\\"/> <appendToFile value="true"/> <rollingStyle value="Date"/> <datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.txt'"/> <staticLogFileName value="false"/> <param name="MaxSizeRollBackups" value="100"/> <layout type="log4net.Layout.PatternLayout"> <!--每条日志末尾的文字说明--> <!--输出格式--> <!--样例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info--> <conversionPattern value="%n记录时间:%date %n线程ID:[%thread] %n日志级别: %-5level %n出错类:%logger property: [%property{NDC}] - %n错误描述:%message%newline %n"/> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value="DEBUG" /> <levelMax value="INFO" /> </filter> </appender> <!--定义输出到文件中--> <appender name="RollingFileTracer" type="log4net.Appender.RollingFileAppender"> <!--定义文件存放位置--> <file value="Logs\\Error\\"/> <appendToFile value="true"/> <rollingStyle value="Date"/> <datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.txt'"/> <staticLogFileName value="false"/> <param name="MaxSizeRollBackups" value="100"/> <layout type="log4net.Layout.PatternLayout"> <!--每条日志末尾的文字说明--> <!--输出格式--> <!--样例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info--> <conversionPattern value="%n记录时间:%date %n线程ID:[%thread] %n日志级别: %-5level %n出错类:%logger property: [%property{NDC}] - %n错误描述:%message%newline %n"/> </layout> <filter type="log4net.Filter.LevelRangeFilter"> <levelMin value="ERROR" /> <levelMax value="FATAL" /> </filter> </appender> <root> <level value="ALL"/> <!--文件形式记录日志--> <appender-ref ref="RollingLogFileAppender"/> <appender-ref ref="RollingFileTracer"/> </root> </log4net> </configuration>
也可以单独创建一个config来放log4net的配置文件,可以避免Web.config压力过大
配置代码可前面代码相同
3、在Properties->AssemblyInfo中添加如下代码,来读取配置文件
自己添加的config添加代码如下:
[code][assembly: log4net.Config.XmlConfigurator(ConfigFile = @"Config\log4net.config", Watch =true)]
配置代码写在Web.config中如下:
[code][assembly: log4net.Config.XmlConfigurator(ConfigFile = @"Web.config", Watch =true)]
4、定义一个友好的错误页面
页面自己定义!
5、封装ExceptionControl方法,异常处理过滤器,使用log4net记录日志,并跳转至错误页面 引入using log4net;
继承HandleErrorAttribute接口 引入命名空间using System.Web.Mvc;
[code]/// <summary> /// 异常处理过滤器,使用log4net记录日志,并跳转至错误页面 /// </summary> [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, Inherited = true, AllowMultiple = true)] public class ExceptionControl : HandleErrorAttribute { ILog log = LogManager.GetLogger(typeof(ExceptionControl)); public override void OnException(ExceptionContext filterContext) { if (!filterContext.ExceptionHandled) { string message = string.Format("消息类型:{0}\r\n消息内容:{1}\r\n引发异常的方法:{2}\r\n引发异常源:{3}" , filterContext.Exception.GetType().Name , filterContext.Exception.Message , filterContext.Exception.TargetSite , filterContext.Exception.Source + filterContext.Exception.StackTrace ); //记录日志 log.Error(message); //转向 filterContext.ExceptionHandled = true; filterContext.Result = new RedirectResult("~/Error.html");//跳转错误页,地址根据自己的改 } base.OnException(filterContext); } }
6、在App_Start中创建FilterConfig.cs类,定义RegisterGlobalFilters方法,添加如下代码:
注:记得引入你上个方法定义的位置
引入命名空间
using System.Web.Mvc;
using MVCPractice.UI.Web.Filter;
[code]public static void RegisterGlobalFilters(GlobalFilterCollection filters) { filters.Add(new ExceptionControl()); }
7、配置Global.asax ->Application_Start 如下:
[code]FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
log4net可以记录网页爆红,请求编译不通过的错误,错误记录样例如下:
为程序员的后期维护提供了极大的便利!
新人博客,不足之处还请多多指出,谢谢!
相关文章推荐
- ASP.NET MVC中错误日志信息记录
- asp.net mvc中加入log4net记录错误日志
- asp.net mvc中加入log4net记录错误日志
- asp.net Web项目中使用Log4Net进行错误日志记录
- Log4net 框架系列:log4net日志文件在asp.net中的应用实例-记录系统错误
- asp.net 错误信息记录到日志文件
- Log4net 框架系列:log4net日志文件在asp.net中的应用实例-记录系统错误
- ASP.NET/MVC 配置log4net启用写错误日志功能
- ASP.NET/MVC 配置log4net启用写错误日志功能
- 用ASP.NET将网页错误信息写入系统日志----简单
- Log4Net异常日志记录在asp.net mvc3.0的应用
- 如何使用Apache log4net库与ASP.NET MVC 5日志记录
- Log4Net异常日志记录在asp.net mvc3.0的应用
- 在ASP.NET MVC中使用Log4Net记录异常日志,出错时导向到静态页
- Log4Net异常日志记录在asp.net mvc3.0的应用
- asp.net Web项目中使用Log4Net进行错误日志记录
- Log4Net异常日志记录在asp.net mvc3.0的应用
- 在ASP.NET MVC中使用Log4Net进行多种HttpCode日志的记录
- asp.net Web项目中使用Log4Net进行错误日志记录
- ASP.NET/MVC 配置log4net启用写错误日志功能