private async Task HandleException(HttpContext context, Exception e) { context.Response.StatusCode = 500; context.Response.ContentType = "text/json;charset=utf-8;"; string error = ""; if (environment.IsDevelopment()) { var json = new { message = e.Message }; error = JsonConvert.SerializeObject(json); } else { error = "抱歉,出错了\r\n" + e.Message + "\r\n" + e.StackTrace; } string info = $@"StatusCode:{context.Response.StatusCode}"; string remoteIpAddr = context.Connection.RemoteIpAddress.ToString(); info = $@"{info} Body: {error}"; LogWebApiWriter.WriteWebApiLog( $@"OUTPUT {remoteIpAddr} {context.Request.Method} {context.Request.Path}", info, ConsoleColor.Yellow); await context.Response.WriteAsync(error); }
/// <summary> /// 请求中 /// </summary> /// <param name="context"></param> public void OnActionExecuting(ActionExecutingContext context) { try { string remoteIpAddr = context.HttpContext.Connection.RemoteIpAddress.ToString(); if (context.HttpContext.Request.Method.Equals("get", StringComparison.InvariantCultureIgnoreCase)) { if (!context.HttpContext.Request.Path.Equals("/WebHook/MediaServerRegister")) { LogWebApiWriter.WriteWebApiLog( $@"INPUT {remoteIpAddr} {context.HttpContext.Request.Method} {context.HttpContext.Request.Path}", $@"{JsonConvert.SerializeObject(context.ActionArguments)}", ConsoleColor.Gray); } } else { if (!context.HttpContext.Request.Path.Equals("/WebHook/MediaServerRegister")) { LogWebApiWriter.WriteWebApiLog( $@"INPUT {remoteIpAddr} {context.HttpContext.Request.Method} {context.HttpContext.Request.Path}", $@"{JsonConvert.SerializeObject(context.ActionArguments)}", ConsoleColor.Gray); } } } catch { } }
private async Task MyHandleException(HttpContext context, Exception e) { context.Response.StatusCode = 400; context.Response.ContentType = "text/json;charset=utf-8;"; string error = e.Message; string info = $@"StatusCode:{context.Response.StatusCode}"; string remoteIpAddr = context.Connection.RemoteIpAddress.ToString(); info = $@"{info} Body: {error}"; LogWebApiWriter.WriteWebApiLog( $@"OUTPUT {remoteIpAddr} {context.Request.Method} {context.Request.Path}", info, ConsoleColor.Yellow); await context.Response.WriteAsync(error); }
/// <summary> /// 请求后 /// </summary> /// <param name="context"></param> public void OnActionExecuted(ActionExecutedContext context) { try { string info = $@"StatusCode:{context.HttpContext.Response.StatusCode}"; string remoteIpAddr = context.HttpContext.Connection.RemoteIpAddress.ToString(); if (context.HttpContext.Response.StatusCode == (int)HttpStatusCode.OK) { if (!context.HttpContext.Request.Path.Equals("/WebHook/MediaServerRegister")) { info = $@"{info} Body: {JsonConvert.SerializeObject(((context.Result as ObjectResult)!).Value)}"; LogWebApiWriter.WriteWebApiLog( $@"OUTPUT {remoteIpAddr} {context.HttpContext.Request.Method} {context.HttpContext.Request.Path}", info, ConsoleColor.Gray); } } } catch { } }
/// <summary> /// 请求后 /// </summary> /// <param name="context"></param> public void OnActionExecuted(ActionExecutedContext context) { try { string info = $@"StatusCode:{((context.Result as JsonResult)!).StatusCode}"; string remoteIpAddr = context.HttpContext.Connection.RemoteIpAddress.ToString(); if (((context.Result as JsonResult) !).StatusCode != (int)HttpStatusCode.OK) { info = $@"{info} Body: {JsonConvert.SerializeObject(((context.Result as JsonResult)!).Value as ResponseStruct)}"; LogWebApiWriter.WriteWebApiLog( $@"OUTPUT {remoteIpAddr} {context.HttpContext.Request.Method} {context.HttpContext.Request.Path}", info, ConsoleColor.Yellow); } else { info = $@"{info} Body: {JsonConvert.SerializeObject(((context.Result as JsonResult)!).Value)}"; LogWebApiWriter.WriteWebApiLog( $@"OUTPUT {remoteIpAddr} {context.HttpContext.Request.Method} {context.HttpContext.Request.Path}", info, ConsoleColor.Gray); } }