文章

public class ApiExceptionFilterAttribute:ExceptionFilterAttribute
{
public override void OnException(HttpActionExecutedContext actionExcutedContext)
{
HttpRequestMessage request = actionExcutedContext.Request;
string controllerName = actionExcutedContext.ActionContext.ControllerContext.ControllerDescriptor.ControllerName;
string actionName = actionExcutedContext.ActionContext.ActionDescriptor.ActionName;
string content = request.Content.ReadAsStringAsync().Result;
string exceptionMessage = actionExcutedContext.Exception.Message;
string exceptionTrace = actionExcutedContext.Exception.StackTrace;
string arguments = JsonConvert.SerializeObject(actionExcutedContext.ActionContext.ActionArguments);
string url = request.RequestUri.AbsoluteUri;
StringBuilder sb = new StringBuilder();
sb.AppendFormat("URL:{0}<br>", url);
sb.AppendFormat("Controller:{0}<br>", controllerName);
sb.AppendFormat("Action:{0}<br>",actionName);
sb.AppendFormat("Arguments:{0}<br>",arguments);
sb.AppendFormat("Content:{0}<br>",content);
sb.AppendFormat("ExceptionMessage:{0}<br>", exceptionMessage);
sb.AppendFormat("ExceptionTrace:{0}<br>", exceptionTrace);
actionExcutedContext.Response = new HttpResponseMessage() { Content = new StringContent(sb.ToString()),StatusCode=System.Net.HttpStatusCode.InternalServerError };
//记录日志 sb.Clear();
sb = null;
base.OnException(actionExcutedContext);
}
}

webapi使用ExceptionFilterAttribute过滤器的更多相关文章

  1. WebAPI 用ExceptionFilterAttribute实现错误(异常)日志的记录(log4net做写库操作)

    WebAPI 用ExceptionFilterAttribute实现错误(异常)日志的记录(log4net做写库操作) 好吧,还是那个社区APP,非管理系统,用户行为日志感觉不是很必要的,但是,错误日 ...

  2. 第五节:WebApi的三大过滤器

    一. 基本说明  1. 简介: WebApi下的过滤器和MVC下的过滤器有一些区别,首先我们要注意的是通常建WebApi项目时,会自动把MVC的程序集也引入进来,所以我们在使用WebApi下的过滤器的 ...

  3. .NET WebAPI 用ExceptionFilterAttribute实现错误(异常)日志的记录(log4net做写库操作)

    好吧,还是那个社区APP,非管理系统,用户行为日志感觉不是很必要的,但是,错误日志咱还是得记录则个.总不能上线后报bug了让自己手足无措吧,虽然不管有木有错误日志报bug都是件很头疼的事... 我们知 ...

  4. Asp.Net WebAPI中Filter过滤器的使用以及执行顺序

    转发自:http://www.cnblogs.com/UliiAn/p/5402146.html 在WEB Api中,引入了面向切面编程(AOP)的思想,在某些特定的位置可以插入特定的Filter进行 ...

  5. webAPI请求消息过滤器

    每当制作一个WebAPI,就必然会收到外部很多调用这个API的请求,有时候,我们希望,能从这些外部来的请求中,按照一定条件筛选过滤一下,只将那些我们觉得合法的,有必要回应的请求放进来,一方面挡住那些非 ...

  6. webapi输入验证过滤器ValidationActionFilter

    public class validationActionFilter:ActionFilterAttribute { public override void OnActionExecuting(S ...

  7. MVC与WebApi中的异常过滤器

    一.MVC的异常过滤器   1.自定义MVC异常过滤器 创建一个类,继承HandleErrorAttribute即可,如果不需要作为特性使用直接实现IExceptionFilter接口即可, 注意,该 ...

  8. .NET WebAPI 采用 IDistributedCache 实现分布式缓存过滤器 Redis 模式

    分布式缓存是由多个应用服务器共享的缓存,通常作为访问它的应用服务器的外部服务进行维护. 分布式缓存可以提高 ASP.NET Core 应用的性能和可伸缩性,尤其是当应用由云服务或服务器场托管时. 与其 ...

  9. WebApi 全局使用filter

    先上代码: public static class WebApiConfig { public static void Register(HttpConfiguration config) { // ...

随机推荐

  1. Java程序猿想要月薪2万+必须必备哪些技术?

    现在程序员是比较紧俏的一个岗位,其实可以写代码的人许多,但是为什么程序员还那么缺呢? 除了需求大以外,还有一个原因就是,实在合格的程序员确实比较少. 想要成为一个合格的程序员,咱们需求满意以下几点要求 ...

  2. Codeforces Round #594 (Div. 2) B. Grow The Tree 水题

    B. Grow The Tree Gardener Alexey teaches competitive programming to high school students. To congrat ...

  3. AtCoder Grand Contest 039

    Preface 我发现我现在打AT真的是只会D-Before-- E,F都是抄曲明姐姐的,然后D还是几何画板猜结论做的(证明都是陈指导想的) 看来再这样下去就真的要退役了啊233 A - Connec ...

  4. 第04组 Alpha冲刺(4/4)

    队名:斗地组 组长博客:地址 作业博客:Alpha冲刺(4/4) 各组员情况 林涛(组长) 过去两天完成了哪些任务: 1.分配展示任务 2.收集各个组员的进度 3.写博客 展示GitHub当日代码/文 ...

  5. subprocess模块(了解)

    目录 一.subprocess模块 一.subprocess模块 subprocess模块允许你去创建一个新的进程让其执行另外的程序,并与它进行通信,获取标准的输入.标准输出.标准错误以及返回码等.更 ...

  6. 基于SincNet的原始波形说话人识别

    speaker recognition from raw waveform with SincNet Mirco Ravanelli, Yoshua Bengio 作为一种可行的替代i-vector的 ...

  7. window.onload在文档加载完成后执行

    验证a .b两点疑惑: a.<script src="./main.js"></script>中的window.onload是在html全部加载完了才执行, ...

  8. 学习 正则表达式 js java c# python 通用

    正则表达式 js java c# python 学习网站 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Globa ...

  9. 安装 Java

    1.rpm下载地址 https://download.oracle.com/otn/java/jdk/7u79-b15/jdk-7u79-linux-x64.rpm?AuthParam=1570520 ...

  10. 【CF1053E】Euler tour

    [CF1053E]Euler tour 题面 CF 洛谷 大概意思是你有一棵树,然而你并不知道这棵树是啥.给你一个确定了一些位置的欧拉序(就是\(ST\)表求\(LCA\)的那个序列),问你是否存在一 ...