MVC异常处理

使用Nlog记录异常信息

首先引用NLog的dll文件,修改配置文件,在configuration下的configSections节点下,配置Nlog关联的配置节例如 <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" /> ,在configuration节点下配置nlog日志输出路径配置

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <targets>
      <target name="fileLog" type="File" fileName="${basedir}/Log/${shortdate}/${level}.txt" layout="【${date:format=yyyy-MM-dd HH\:mm\:ss}】【${level}】 ${message} ${exception}" />
    </targets>
    <rules>
      <logger name="*" minlevel="Debug" writeTo="fileLog" />
    </rules>
  </nlog>

新建一个继承自HandleErrorAttribute的特性,用于处理异常,代码如下

public class CustomerExceptionAttribute:HandleErrorAttribute
    {
        /// <summary>
        /// 异常处理
        /// </summary>
        /// <param name="filterContext"></param>
        public override void OnException(ExceptionContext filterContext)
        {
            NLog.LogManager.GetCurrentClassLogger().Error(filterContext.Exception);
            base.OnException(filterContext);
            filterContext.HttpContext.Response.Redirect("");
        } 
    }

在需要处理异常的地方添加该特性

        [CustomerException]
        public ActionResult Index()
        {
            int a = 0;
            int b = 3 / a;
            return View();
        }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。