MVC中使用过滤器记录异常日志
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; namespace Filter.Filters
{
using System.Web.Mvc;
public class ExpAttribute:HandleErrorAttribute
{
/// <summary>
/// 用于截获当前action逻辑代码执行的异常,但是此异常没有被程序员通过try{} catch{}处理
/// </summary>
/// <param name="filterContext"></param>
public override void OnException(ExceptionContext filterContext)
{
//filterContext.Exception.Message 获取描述当前异常信息
//filterContext.Exception.InnerException 获取导致当前异常的system.Exception实例
/*
日志文件: 优点:快; 确定:不容易查找和统计
* 数据库:能够很好地进行统计
* LogNet4.dll :.net中开源的日志记录模块,可以实现向文本和数据库中记录日志
*/ //模拟写日志,但是有很大弊端,不建议使用在项目中
string phyPath = filterContext.HttpContext.Server.MapPath("/log.txt");
//获取异常对象
string err = filterContext.Exception.ToString();
//具体的异常内容
string errfmt = string.Format("{0}===============>{1}\r\n", DateTime.Now.ToString(), err);
//将指定字符串 追加到 指定路径的文件
System.IO.File.AppendAllText(phyPath, "" + errfmt);
//告诉MVC框架此异常已经处理,不需要将错误信息响应给用户
filterContext.ExceptionHandled = false;
base.OnException(filterContext);
}
}
}
MVC中使用过滤器记录异常日志的更多相关文章
- 在ASP.NET MVC中使用Log4Net记录异常日志,出错时导向到静态页
本篇体验在ASP.NET MVC 4中使用Log4Net记录日志. 通过NuGet安装Log4Net. 需求是:当出错时导向到Error.html静态页面,Log4Net记录错误信息. 大致的思路是: ...
- asp.net mvc中加入log4net记录错误日志
直接上代码示例:https://share.weiyun.com/aff36f2547514cfefe129ebb8ccb28ef 首先添加加log4net的dll,推荐用nuget.... 贴上配置 ...
- 笨鸟先飞之ASP.NET MVC系列之过滤器(06异常过滤器)
概念介绍 异常过滤器主要在我们方法中出现异常的时候触发,一般我们用 异常过滤器 记录日志,或者在产生异常时做友好的处理 如果我们需要创建异常过滤器需要实现IExceptionFilter接口. nam ...
- ASP.NET MVC 中的过滤器
这里用实例说明各种过滤器的用法,有不对的地方还请大神指出,共同探讨. 1. ActionFilter 方法过滤器: 接口名为 IActionFilter ,在控制器方法调用前/后执行. 在新建的MVC ...
- MVC4.0 利用HandleErrorAttribute和log4net实现记录异常日志功能
1.MVC4.0中HandleErrorAttribte已经帮我们处理了异常问题,当我们新建一个非空的MVC项目时候,在FilterConfig中会发现这样的代码 public class Filte ...
- MVC中的过滤器
authour: chenboyi updatetime: 2015-05-09 09:30:30 friendly link: 目录: 1,思维导图 2,过滤器种类(图示) 3,全局过滤器 ...
- 在 C# 控制台中记录异常日志并输出
最近做了一个小程序,要求在控制台中记录程序运行的异常并输出到指定的文件夹中,以下是我的具体的程序代码: public static void ErrorLog(Exception ex) { stri ...
- Spring MVC 中使用AOP 进行统一日志管理--注解实现
1.AOP简介 AOP称为面向切面编程 AOP的基本概念 (1)Aspect(切面):通常是一个类,里面可以定义切入点和通知 (2)JointPoint(连接点):程序执行过程中明确的点,一般是方法的 ...
- MVC 中使用log4net 打印重复日志解决方法
最近在项目中引用log4net 来打印日志,会发现在同一时间点 打印重复记录: 详见图
随机推荐
- 黄聪:PHP使用Simple_HTML_DOM遍历、过滤及保留指定属性
<? /* * 参考资料: * http://www.phpddt.com/manual/simplehtmldom_1_5/manual_api.htm * http://www.phpddt ...
- 解密:wp-includes/load.php
描述:定义加载 WP 所需要的函数.1)wp_unregister_GLOBALS(),关闭’GLOBALS’, ‘_GET’, ‘_POST’, ‘_COOKIE’, ‘_REQUEST’, ‘_S ...
- 正则表达式中的\b
转自百度知道:https://zhidao.baidu.com/question/58688915.html\b表示的应该是ASCII码中的BS字符(退格字符),匹配字与字中间那个看不见的东西(即一个 ...
- Spark1.6 DataSets简介
Apache Spark提供了强大的API,以便使开发者为使用复杂的分析成为了可能.通过引入SparkSQL,让开发者可以使用这些高级API接口来从事结构化数据的工作(例如数据库表,JSON文件),并 ...
- [复变函数]第17堂课 5 解析函数的 Laurent 展式与孤立奇点 5. 1 解析函数的 Laurent 展式
0. 引言 (1) $f$ 在 $|z|<R$ 内解析 $\dps{\ra f(z)=\sum_{n=0}^\infty c_nz^n}$ (Taylor 级数). (2) $f$ 在 $ ...
- SmtpClient 类
1, SmtpClient 类 http://www.cnblogs.com/panlijiao/archive/2012/11/14/2773836.html
- XtraReport 实例化 打印
// Create a report instance, assigned to a Print Tool. ReportPrintTool pt = new ReportPrintTool( ...
- Number of Islands
Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surro ...
- Performance plugin离线安装
Upload安装plugin Upload安装plugin方式,需要手动下载plugin,然后在Jenkins界面中upload plugin,从而实现安装plugin的目的. 进入Jenkins界面 ...
- Oracle 查看表空间的大小
SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name FROM dba_free_space GROUP BY tables ...