我目前正在實現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)可能是答案。 –