2015-01-05 34 views
0

我目前正在实现log4net来捕获我的web api控制器异常。log4net捕获web api的所有控制器操作错误

我想知道我怎么可能捕捉到控制器内的任何操作的所有错误?

我不想去最好通过每一个动作,并添加尝试捕捉它是否能有所帮助?

+0

对于未处理的异常 - http://stackoverflow.com/questions/1367967/log4net-log-all-unhandled-application-errors –

+0

是关于“ASP.NET Web API”的问题吗?如果是这样,请考虑添加[asp.net-web-api]标签。 –

+0

哦,如果是这样,[this](http://stackoverflow.com/q/16028919/21567)可能是答案。 –

回答

1

您可以实现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的属性要记录的方法。

1

你需要注册一个IExceptionLogger

e.x:GlobalConfiguration.Configuration.Services.Add(typeof运算(IExceptionLogger),新YourWebApiExceptionLogger());

相关问题