diff --git a/internal/app/api/middlewares/error.go b/internal/app/api/middlewares/error.go index 6b509b6..43c206c 100644 --- a/internal/app/api/middlewares/error.go +++ b/internal/app/api/middlewares/error.go @@ -28,30 +28,32 @@ func (e *ErrorInterceptor) Handler(ctx *gin.Context) { return } - headers, _ := json.Marshal(ctx.Request.Header) - logs := []zap.Field{ - zap.String("request.method", ctx.Request.Method), - zap.String("request.url", ctx.Request.URL.String()), - zap.ByteString("request.headers", headers), - zap.String("errors", ginErrorsToString(ctx.Errors)), - } - e.logger.Error("request error:", logs...) - - code, msg := -1, "服务器异常,请稍后再试" + code, msg, notLog := -1, "服务器异常,请稍后再试", false for i := len(ctx.Errors) - 1; i >= 0; i-- { err := ctx.Errors[i] if appError, ok := errors.Cause(err.Err).(*apperrors.AppError); ok { code = appError.Code switch appError.ResponseType { - case apperrors.ValidationError: - msg = appError.Message - case apperrors.AuthError: + case apperrors.ValidationError, apperrors.AuthError: msg = appError.Message + notLog = true } break } } + if !notLog { + headers, _ := json.Marshal(ctx.Request.Header) + logs := []zap.Field{ + zap.String("request.method", ctx.Request.Method), + zap.String("request.url", ctx.Request.URL.String()), + zap.ByteString("request.headers", headers), + zap.String("errors", ginErrorsToString(ctx.Errors)), + } + + e.logger.Error("request error:", logs...) + } + ctx.JSON(http.StatusOK, help.FailureJson(code, msg, nil)) }() ctx.Next()