爱上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中的全局异常的记录方法,呵呵。

 本文转自博客园张占岭(仓储大叔)的博客,原文链接:爱上MVC3系列~全局异常处理与异常日志,如需转载请自行联系原博主。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
7天前
|
小程序 前端开发 API
微信小程序全栈开发中的异常处理与日志记录
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的异常处理和日志记录,强调其对确保应用稳定性和用户体验的重要性。异常处理涵盖前端(网络、页面跳转、用户输入、逻辑异常)和后端(数据库、API、业务逻辑)方面;日志记录则关注关键操作和异常情况的追踪。实践中,前端可利用try-catch处理异常,后端借助日志框架记录异常,同时采用集中式日志管理工具提升分析效率。开发者应注意安全性、性能和团队协作,以优化异常处理与日志记录流程。
|
3月前
|
Java Spring
【Spring Boot】logback和log4j日志异常处理
【1月更文挑战第25天】【Spring Boot】logback和log4j日志异常处理
|
6月前
|
监控 安全 Java
Java基础知识第七讲:Java异常处理与日志打印
Java基础知识第七讲:Java异常处理与日志打印
224 0
|
2月前
|
JSON 监控 Java
Java Web开发中的异常处理与日志记录最佳实践
Java Web开发中的异常处理与日志记录最佳实践
|
5月前
|
消息中间件 搜索推荐 关系型数据库
淘东电商项目(51) -全局异常日志采集(ELK+Kafka)
淘东电商项目(51) -全局异常日志采集(ELK+Kafka)
54 0
|
5月前
|
应用服务中间件
Tomcat启动时日志报 dcom.sun.manager.jmxremote 异常导致无法正常启动使用
Tomcat启动时日志报 dcom.sun.manager.jmxremote 异常导致无法正常启动使用
|
6月前
|
Java 项目管理 Spring
【log4j异常】Spring boot项目启动报警告信息,log4j:WARN Please initialize the log4j system properly.
【log4j异常】Spring boot项目启动报警告信息,log4j:WARN Please initialize the log4j system properly.
86 0
|
7月前
|
运维 关系型数据库 MySQL
OBCP第八章 OB运维、监控与异常处理-日志查询
OBCP第八章 OB运维、监控与异常处理-日志查询
133 0
|
9月前
|
网络协议 Shell Perl
根据web访问日志,封禁请求量异常的IP,如IP在半小时后恢复正常,则解除封禁
根据web访问日志,封禁请求量异常的IP,如IP在半小时后恢复正常,则解除封禁
68 1
|
10月前
|
Java
java生成异常日志文件
将发生的异常息保存到日志文件中

热门文章

最新文章