You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
1.4 KiB
31 lines
1.4 KiB
using Common.Models.RequestResponse;
|
|
using Common.Utility;
|
|
using log4net;
|
|
using Newtonsoft.Json;
|
|
using System.Net;
|
|
using System.Net.Http;
|
|
using System.Web.Http.Filters;
|
|
|
|
namespace ThirdPartyAPIs.CustomFilter
|
|
{
|
|
public class ApplicationExceptionLogFilter : ExceptionFilterAttribute
|
|
{
|
|
private readonly ILog _log = LogManager.GetLogger(typeof(ApplicationExceptionLogFilter));
|
|
|
|
public override void OnException(HttpActionExecutedContext context)
|
|
{
|
|
var controllerName = context.ActionContext.ActionDescriptor.ControllerDescriptor.ControllerName;
|
|
var actionName = context.ActionContext.ActionDescriptor.ActionName;
|
|
string error = "Error Occured on api/" + controllerName + "/" + actionName + " And Error Is :" + context.Exception.Message;
|
|
LogicalThreadContext.Properties["client_ip_address"] = new GetClientIpAddress().GetIpAddress(context.Request);
|
|
LogicalThreadContext.Properties["exception"] = context.Exception;
|
|
_log.Error(context.Exception.Message);
|
|
TPResponse jsonResponse = new TPResponse();
|
|
jsonResponse.ResponseCode = "999";
|
|
jsonResponse.Msg = context.Exception.Message;
|
|
jsonResponse.Data = context.Exception;
|
|
var a = JsonConvert.SerializeObject(jsonResponse);
|
|
context.Response = context.Request.CreateErrorResponse(HttpStatusCode.BadRequest, a);
|
|
}
|
|
}
|
|
}
|