一、需要在项目里面新建两个文件夹

1.Filters用于存放自定义过滤器

2.Logs用于存放异常日志

二、新建异常捕获过滤器

LogFilter

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.IO;
namespace mvc5test1.Filters
{
    /// <summary>
    /// 自动以日志过滤器,继承FilterAttribute是为了 使用特性,实现IExcepitionFilter是为了使用过滤器
    /// </summary>
    public class LogFilter : FilterAttribute, IExceptionFilter
    {
        public void OnException(ExceptionContext filterContext)
        {
            string path = filterContext.HttpContext.Server.MapPath("~/Logs/log.txt");
            StreamWriter sw = new StreamWriter(path,true,System.Text.Encoding.UTF8);
            sw.WriteLine(DateTime.Now.ToString() + filterContext.Exception.Message);
            sw.Flush();
            sw.Close();

        }
    }
}

项目目录结构

ASP.NET MVC使用自定义过滤器

三、使用过滤器

新建控制器

useFilterException.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using mvc5test1.Filters;
namespace mvc5test1.Controllers
{
    public class UseFilterController : Controller
    {
        // GET: UseFilter
        public ActionResult Index()
        {
            return View();
        }
        /// <summary>
        /// 异常日志过滤器测试
        /// </summary>
        /// <returns></returns>
        [LogFilter]
        public ActionResult Exception()
        {
            string s = null;
            int i = s.Length;
            return Content("异常过滤器测试!");
        }
    }
}

日志截图:

ASP.NET MVC使用自定义过滤器

相关文章:

  • 2021-10-06
  • 2021-09-27
  • 2021-09-27
  • 2021-09-27
  • 2021-09-27
猜你喜欢
  • 2021-09-27
  • 2021-06-28
  • 2021-09-27
  • 2021-06-21
  • 2022-01-31
  • 2021-05-02
相关资源
相似解决方案