public void OnActionExecuted(ActionExecutedContext context) { _logRequest.ExcuteEndTime = DateTime.Now; if (context.Exception == null) { _logRequest.ResponseBodys = (context.Result as ObjectResult).Value.ToJson(); LogSuccess(); } else { Result result = null; if (context.Exception is ChecksException ce) //验证异常(业务) { result = Result.Fail(ce.Code, ce.Message); _logRequest.ResponseBodys = result.ToJson(); LogSuccess(); } else if (context.Exception is QueueException qe) //消息队列异常(业务) { result = Result.Fail(qe.Code, qe.Message); _logRequest.ResponseBodys = result.ToJson(); LogSuccess(); } else { _logRequest.ResponseBodys = context.Exception.ToString(); result = Result.Fail(500, "服务器连接错误"); Log.Error(new LogFormat(_logRequest.ToJson(), "services.pay", "http", "controller", 500, (_logRequest.ExcuteEndTime - _logRequest.ExcuteStartTime).Milliseconds, "", _logRequest.Url, "")); } context.ExceptionHandled = true; context.Result = new ObjectResult(result.ToJson()); } }
private bool SaveLog(string queueName, LogRequest logRequest) { try { if (queueName.Equals(LogLevel.Info.ToString())) { _InfoLogAccess.AddLog(logRequest); return(true); } if (queueName.Equals(LogLevel.Error.ToString())) { _ErrorLogAccess.AddLog(logRequest); return(true); } return(false); } catch (Exception ex) { Logger.Error($"{nameof(logRequest.AppId)}:{logRequest.AppId} 保存日志发生错误:{ex} 日志内容:{logRequest.ToJson()}"); return(false); } }