一、需要在项目里面新建两个文件夹
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();
}
}
}
项目目录结构
三、使用过滤器
新建控制器
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("异常过滤器测试!");
}
}
}
日志截图: