webapi使用ExceptionFilterAttribute过滤器

2021-01-23 00:12

阅读:686

标签:str   public   res   abs   文章   sys   format   server   webapi   

文章

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}
", url); sb.AppendFormat("Controller:{0}
", controllerName); sb.AppendFormat("Action:{0}
",actionName); sb.AppendFormat("Arguments:{0}
",arguments); sb.AppendFormat("Content:{0}
",content); sb.AppendFormat("ExceptionMessage:{0}
", exceptionMessage); sb.AppendFormat("ExceptionTrace:{0}
", exceptionTrace); actionExcutedContext.Response = new HttpResponseMessage() { Content = new StringContent(sb.ToString()),StatusCode=System.Net.HttpStatusCode.InternalServerError }; //记录日志 sb.Clear(); sb = null; base.OnException(actionExcutedContext); } }

webapi使用ExceptionFilterAttribute过滤器

标签:str   public   res   abs   文章   sys   format   server   webapi   

原文地址:https://www.cnblogs.com/fanfan-90/p/12075592.html


评论


亲,登录后才可以留言!