diff --git a/backend/middleware/operation.go b/backend/middleware/operation.go index 324988e8b..7ed07b2ea 100644 --- a/backend/middleware/operation.go +++ b/backend/middleware/operation.go @@ -2,6 +2,7 @@ package middleware import ( "bytes" + "compress/gzip" "encoding/json" "fmt" "io" @@ -129,8 +130,23 @@ func OperationLog() gin.HandlerFunc { c.Next() + buf := bytes.NewReader(writer.body.Bytes()) + reader, err := gzip.NewReader(buf) + if err != nil { + record.Status = constant.StatusFailed + record.Message = fmt.Sprintf("gzip new reader failed, err: %v", err) + latency := time.Since(now) + record.Latency = latency + + if err := service.NewILogService().CreateOperationLog(record); err != nil { + global.LOG.Errorf("create operation record failed, err: %v", err) + } + return + } + defer reader.Close() + datas, _ := io.ReadAll(reader) var res response - _ = json.Unmarshal(writer.body.Bytes(), &res) + _ = json.Unmarshal(datas, &res) if res.Code == 200 { record.Status = constant.StatusSuccess } else {