public override void OnException(HttpActionExecutedContext context) { if (null == context.Exception) { return; } var httpResultException = context.Exception as HttpResponseException; if (null == httpResultException) { var exceptionId = UidTool.Next(); context.Response = context.Request.CreateResponse(HttpStatusCode.InternalServerError, new { Message = context.Exception.Message, Details = "See log entry identified by token {0}".Fill(exceptionId), Code = 500, }); _logger.Error("WEBAPI 500, token: {0}".Fill(exceptionId), context.Exception); } else { _logger.Error("Unhandled http exception", context.Exception); } }
protected override async Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { var content = await request.Content.ReadAsStringAsync(); var requestId = UidTool.GetTicksHex(); _logger.Debug("[{0}] {1} {2} {3}\r\n{4}", requestId, GetClientIp(request), request.Method, request.RequestUri, content); return(await base.SendAsync(request, cancellationToken)); }