我目前正在实现log4net来捕获我的web api控制器异常。log4net捕获web api的所有控制器操作错误
我想知道我怎么可能捕捉到控制器内的任何操作的所有错误?
我不想去最好通过每一个动作,并添加尝试捕捉它是否能有所帮助?
我目前正在实现log4net来捕获我的web api控制器异常。log4net捕获web api的所有控制器操作错误
我想知道我怎么可能捕捉到控制器内的任何操作的所有错误?
我不想去最好通过每一个动作,并添加尝试捕捉它是否能有所帮助?
您可以实现System.Web.Http.Filters.ActionFilterAttribute。在OnActionExecuted可以处理你的日志:
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
if (actionExecutedContext.Response != null)
{
//ok
}
else
{
_logger.ErrorFormat("actionExecutedContext.Response == null will result in 500, unhandled exception"); //Add extra information here
}
}
然后你就可以添加此ActionFilter的属性要记录的方法。
你需要注册一个IExceptionLogger
e.x:GlobalConfiguration.Configuration.Services.Add(typeof运算(IExceptionLogger),新YourWebApiExceptionLogger());
对于未处理的异常 - http://stackoverflow.com/questions/1367967/log4net-log-all-unhandled-application-errors –
是关于“ASP.NET Web API”的问题吗?如果是这样,请考虑添加[asp.net-web-api]标签。 –
哦,如果是这样,[this](http://stackoverflow.com/q/16028919/21567)可能是答案。 –