zoukankan      html  css  js  c++  java
  • asp.net mvc 使用过滤器捕获异常 写入日志

    创建一个异常处理类ExceptionFilters,继承System.Web.Mvc.FilterAttribute, System.Web.Mvc.IExceptionFilter 实现方法OnException

     public class ExceptionFilters : System.Web.Mvc.FilterAttribute, System.Web.Mvc.IExceptionFilter
        {
            public void OnException(ExceptionContext filterContext)
            {
                if (!filterContext.ExceptionHandled)
                {
                    string controllerName = (string)filterContext.RouteData.Values["controller"];
                    string actionName = (string)filterContext.RouteData.Values["action"];
                    string ip = HttpContext.Current.Request.UserHostAddress;
                    string param = filterContext.HttpContext.Request.HttpMethod;
                    //记录日志
                    LogFile.WriteErrorLog(DateTime.Now + string.Format(" Location:{0}/{1} Param:{2} UserIP:{3} Exception:{4}", controllerName, actionName, param, ip, filterContext.Exception.Message));
                    //设置返回结果
                    filterContext.Result = new JsonResult
                    {
                        Data = new ResultU { IsOK = false, Code = 999, Msg = filterContext.Exception.Message },
                        JsonRequestBehavior = JsonRequestBehavior.AllowGet
                    };
                }
    
                filterContext.ExceptionHandled = true;//返回结果是JsonResult,则设置异常已处理
    
    
            }
        }

    在过滤器中注册

    在App_Start/FilterConfig.cs

     public class FilterConfig
        {
            public static void RegisterGlobalFilters(GlobalFilterCollection filters)
            {
                //filters.Add(new HandleErrorAttribute());
                filters.Add(new ExceptionFilters());
            }
        }

     测试返回   写入日志

     

  • 相关阅读:
    这一次,彻底弄懂 JavaScript 执行机制
    flex布局实例demo全解
    Sass和less的区别是什么?用哪个好
    开放服务器特定端口
    使用jacob报错:com.jacob.com.ComFailException: Can't get object clsid from progid
    计算机网络基础
    前端分页3
    window 10 Microsoft Edge 无法使用开发者模式【F12】
    docker下载安装
    git常用笔记
  • 原文地址:https://www.cnblogs.com/shenghuotaiai/p/12300572.html
Copyright © 2011-2022 走看看