zoukankan      html  css  js  c++  java
  • 爱上MVC3系列~全局异常处理与异常日志

    回到目录

    在MVC3网站的global.asax中的Application_Start方法里,有这样一段代码 

    1   RegisterGlobalFilters(GlobalFilters.Filters);

    它的主要使用是将全局过滤器进行注册,而全局过滤器可以在RegisterGlobalFilters这个方法里进行设置,如代码:

     1    /// <summary>
     2         /// 全局过滤器(特性)
     3         /// </summary>
     4         /// <param name="filters"></param>
     5         public static void RegisterGlobalFilters(GlobalFilterCollection filters)
     6         {
     7             // ExceptionLogAttribute继承自HandleError,主要作用是将异常信息写入日志系统中
     8             filters.Add(new Web.Commons.Attributes.ExceptionLogAttribute());
     9             //默认的异常记录类
    10             filters.Add(new HandleErrorAttribute());
    11         }

    当我们设置完上面两块后,现在如果想记异常日志,那我们需要完善一下ExceptionLogAttribute这个类,看代码:

     1    /// <summary>
     2     /// 异常持久化类
     3     /// </summary>
     4     public class ExceptionLogAttribute : HandleErrorAttribute
     5     {
     6         /// <summary>
     7         /// 触发异常时调用的方法
     8         /// </summary>
     9         /// <param name="filterContext"></param>
    10         public override void OnException(ExceptionContext filterContext)
    11         {
    12 
    13             string message = string.Format("消息类型:{0}<br>消息内容:{1}<br>引发异常的方法:{2}<br>引发异常的对象:{3}<br>异常目录:{4}<br>异常文件:{5}"
    14                 , filterContext.Exception.GetType().Name
    15                 , filterContext.Exception.Message
    16                 , filterContext.Exception.TargetSite
    17                 , filterContext.Exception.Source
    18                 , filterContext.RouteData.GetRequiredString("controller")
    19                 , filterContext.RouteData.GetRequiredString("action"));
    20             VLog.VLogFactory.CreateVLog().ErrorLog(message); //TODO:将 ex 错误对象记录到系统日志模块
    21             base.OnException(filterContext);
    22         }
    23     }

    大家可以看到,在上面类中,有个CreateVLog的方法,它是干什么用的呢,实事上,它就是我们的日志功能类,可以对日志进行不同类型的持久化,这我会在单独一讲中去说明它。

    今天主要就是MVC3中的全局异常的记录方法,呵呵。

    回到目录

  • 相关阅读:
    openwrt 相关文章
    负载均衡相关文章
    Today's Progress
    Rodrigues formula is beautiful, but uneven to sine and cosine. (zz Berkeley's Page)
    Camera Calibration in detail
    Fundamental Matrix in Epipolar
    Camera Calibration's fx and fy do Cares in SLAM
    FilterEngine::apply
    FilterEngine 类解析——OpenCV图像滤波核心引擎(zz)
    gaussBlur
  • 原文地址:https://www.cnblogs.com/lori/p/2551528.html
Copyright © 2011-2022 走看看