2015-01-05 49 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());

相關問題