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 来打印日志,会发现在同一时间点 打印重复记录: 详见图
随机推荐
- 黄聪:WordPress 的 Hook 机制与原理(add_action、add_filter)
稍有接触过 WordPress 主题或插件制作修改的朋友,对 WordPress 的Hook机制应该不陌生,但通常刚接触WordPress Hook 的新手,对其运作原理可能会有点混乱或模糊.本文针对 ...
- mapreduce计算框架
一. MapReduce执行过程 分片: (1)对输入文件进行逻辑分片,划分split(split大小等于hdfs的block大小) (2)每个split分片文件会发往不同的Mapper节点进行分散处 ...
- VS 开发工具中的Remote Debug 功能远程调试程序经验分享
前言: 有时候我们Dev(开发人员)需要debug tester(测试人员)或者customer(客户)的环境,可tester的机器上没有Code,是不是有点着急? 而且是多版本应用且tester 发 ...
- ios之"performSelector may cause a leak because its selector is unknown"警告原因及其解决办法
问题描述 项目中使用到了从字符串创建选择器,编译时发现警告:"performSelector may cause a leak because its selector is unknown ...
- jsch ssh服务器调用Linux命令或脚本的小问题
代码如下: public static boolean execshell(String command, String user, String passwd, String host) throw ...
- Spark参数配置说明
1 修改$SPARK_HOME/conf目录下的spark-defaults.conf文件 添加以下配置项 spark.sql.hive.convertMetastoreParquet ...
- OAF_MDS系列1_OAF页面元数据结构MDS的解析(概念)
2014-06-06 Created By BaoXinjian
- codeblocks AStyle修改格式和快捷键
首先我想说 codeblocks还是很强大的,原来以为不能改,其实是不会,那么本篇博客就教大家修改AStyle格式和添加快捷键. 1.修改AStyle格式: Settings -> Editor ...
- centos7通过firewalld更改sshd端口
1.设置selinux端口 [root@hn ~]# semanage port -l|grep ssh -bash: semanage: 未找到命令 [root@hn ~]# whereis sem ...
- sql server 2008 评估期已过期如何升级
1, http://wenku.baidu.com/view/49c88e2ab4daa58da0114af4.html 2, #BYTECH# ##