// LoggerMiddleware Log with important fields.funcLoggerMiddleware()gin.HandlerFunc{returnfunc(c*gin.Context){startTime:=time.Now()// Call the remaining handlers for this requestc.Next()stopTime:=time.Since(startTime)spendTime:=fmt.Sprintf("%d ms",int(math.Ceil(float64(stopTime.Nanoseconds()/1000000))))statusCode:=c.Writer.Status()dataSize:=c.Writer.Size()ifdataSize<0{dataSize=0}method:=c.Request.Methoduri:=c.Request.RequestURILog:=logger.Logger.WithFields(logrus.Fields{"spend_time":spendTime,"path":uri,"method":method,"status":statusCode,})// create inner erroriflen(c.Errors)>0{Log.Error(c.Errors.ByType(gin.ErrorTypePrivate))}ifstatusCode>=errno.Error{Log.Error()}elseifstatusCode>=errno.InvalidParams{Log.Warn()}else{Log.Info()}}}