MVC自定义错误日志异常处理
2017-09-18 11:13
169 查看
MVC添加错误日志处理模块很简单,只要写个继承自HandleErrorAttribute的过滤器,重新OnException方法,贴个异常处理代码如下:
使用的是log4net记录日志,然后在全局过滤器里注册一下就可以了(App_Start文件夹下的FilterConfig),注册代码如下:
OK 搞定日志模块 简单吧
public class ExceptionAttribute : HandleErrorAttribute { private static Logger logger = new Logger(typeof(ExceptionAttribute)); public override void OnException(ExceptionContext filterContext) { if (!filterContext.ExceptionHandled) { string controllerName = (string)filterContext.RouteData.Values["controller"]; string actionName = (string)filterContext.RouteData.Values["action"]; string msgTemplate = "在执行 controller[{0}] 的 action[{1}] 时产生异常"; Exception ex = filterContext.Exception; logger.Error(msgTemplate, ex); } if (filterContext.Result is JsonResult) { //当结果为json时,设置异常已处理 filterContext.ExceptionHandled = true; } else { var routingData = filterContext.RequestContext.RouteData; var area = routingData.DataTokens["area"]; if (area != null && area.ToString() == "Admin") { filterContext.Result = new RedirectResult("/Admin/Error/Error");//后台管理错误页面 } else { filterContext.Result = new RedirectResult("/Error/Error");//前端错误页面 前端移动端 所有要后后台错误页区分 } filterContext.ExceptionHandled = true; ////否则调用原始设置 //base.OnException(filterContext); } } }
使用的是log4net记录日志,然后在全局过滤器里注册一下就可以了(App_Start文件夹下的FilterConfig),注册代码如下:
public class FilterConfig { public static void RegisterGlobalFilters(GlobalFilterCollection filters) { //将自己定义的异常过滤器注册为全局过滤器。(全局过滤器是可以注册多个的) filters.Add(new ExceptionAttribute()); filters.Add(new HandleErrorAttribute()); } }
OK 搞定日志模块 简单吧
相关文章推荐
- 由于内部错误,服务器无法处理该请求。有关该错误的详细信息,请打开服务器上的 IncludeExceptionDetailInFaults (从 ServiceBehaviorAttribute 或从 <serviceDebug> 配置行为)以便将异常信息发送回客户端,或打开对每个 Microsoft .NET Framework SDK 文档的跟踪并检查服务器跟踪日志。
- PHP自学之路----错误及异常处理机制、错误日志
- 函数用户PHP自学之路----错误及异常处理机制、错误日志
- [Python进阶-6]错误异常处理,断言assert,日志logging,单元测试,文档测试
- php日志错误异常处理
- php 中用户触发错误与记录错误日志及异常处理
- Android中处理崩溃异常 保存错误日志至SD卡中
- Spring MVC自定义统一异常处理类,并且在控制台中输出错误日志
- Laravel之加密解密/日志/异常处理及自定义错误
- Web安全开发指南--异常错误处理与日志审计
- 异常处理及日志错误信息备忘——都是那么低级的错误,唉~
- ASP.NET全局错误处理和异常日志记录以及IIS配置自定义错误页面
- Spring MVC自定义统一异常处理类,并且在控制台中输出错误日志
- Spring MVC自定义统一异常处理类,并且在控制台中输出错误日志
- Asp.Net : 捕捉和记录网站中出现的所有未处理错误,抛出详细的页面来源和访问ip,调用的接口方法及异常实例(记事本日志,系统日志及数据库日志)
- android自定义异常处理与错误日志上传
- 【异常处理】将错误日志抛向后台以-.txt的保存
- 碰到bind错误,主程序异常,调用处理函数退出问题
- 极限测试之Matlab与Forcal的错误(异常)处理
- PHP错误和异常处理功能模块示例