From 3ac467fc531e841223733989864f72f9805b1a4b Mon Sep 17 00:00:00 2001 From: ssongliu <73214554+ssongliu@users.noreply.github.com> Date: Tue, 11 Apr 2023 23:52:28 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E8=A7=A3=E6=9E=90=E5=A4=B1=E8=B4=A5=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20(#585)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/middleware/operation.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) 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 {