asP獲取指定記錄,ASP.NET Web API 異常日志記錄

 2023-10-25 阅读 22 评论 0

摘要:如果在 ASP.NET MVC 應用程序中記錄異常信息,我們只需要在 Global.asax 的 Application_Error 中添加代碼就可以了,比如: public class MvcApplication : System.Web.HttpApplication {protected void Application_Error(object sender, EventArgs e){v

如果在 ASP.NET MVC 應用程序中記錄異常信息,我們只需要在 Global.asax 的 Application_Error 中添加代碼就可以了,比如:

public class MvcApplication : System.Web.HttpApplication
{protected void Application_Error(object sender, EventArgs e){var lastError = Server.GetLastError();if (lastError != null){Logger.Default.Error("Application_Error", lastError);Response.StatusCode = 500;Server.ClearError();}}
}

但這一套在 ASP.NET Web API 中并不適用,其解決方式也不是很麻煩,我們先創建 ExceptionHandlingAttribute(繼承 ExceptionFilterAttribute):

public class ExceptionHandlingAttribute : ExceptionFilterAttribute
{public override void OnException(HttpActionExecutedContext context){var exception = context.Exception;if (exception != null){Logger.Default.Error("Application_Error", exception);}}
}

然后在 WebApiConfig 中注冊下:

public static class WebApiConfig
{public static void Register(HttpConfiguration config){// Web API configuration and servicesconfig.Filters.Add(new ExceptionHandlingAttribute());// Web API routesconfig.MapHttpAttributeRoutes();config.Routes.MapHttpRoute(name: "DefaultApi",routeTemplate: "api/{controller}/{id}",defaults: new { id = RouteParameter.Optional });}
}

或者我們在 Action 上面添加 ExceptionHandlingAttribute 屬性:

public class ValuesController : ApiController
{[ExceptionHandlingAttribute]public IEnumerable<string> Get(){return new string[] { "value1", "value2" };}
}

如果日志沒有記錄的話,需要在 Global.asax.cs 中的 Application_Start 添加如下代碼:

public class MvcApplication : System.Web.HttpApplication
{protected void Application_Start(){GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;....}
}




本文轉自SummerChill博客園博客,原文鏈接:http://www.cnblogs.com/xishuai/p/asp-net-web-api-global-error-handling.html,如需轉載請自行聯系原作者

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/164248.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息