diff --git a/webapp/backend/pkg/web/middleware/logger.go b/webapp/backend/pkg/web/middleware/logger.go index 76cc6ae..d95e1f8 100644 --- a/webapp/backend/pkg/web/middleware/logger.go +++ b/webapp/backend/pkg/web/middleware/logger.go @@ -38,10 +38,14 @@ func LoggerMiddleware(logger logrus.FieldLogger) gin.HandlerFunc { return func(c *gin.Context) { //clone the request body reader. - buf, _ := ioutil.ReadAll(c.Request.Body) - reqBodyReader1 := ioutil.NopCloser(bytes.NewBuffer(buf)) - reqBodyReader2 := ioutil.NopCloser(bytes.NewBuffer(buf)) //We have to create a new Buffer, because reqBodyReader1 will be read. - c.Request.Body = reqBodyReader2 + var reqBody string + if c.Request.Body != nil { + buf, _ := ioutil.ReadAll(c.Request.Body) + reqBodyReader1 := ioutil.NopCloser(bytes.NewBuffer(buf)) + reqBodyReader2 := ioutil.NopCloser(bytes.NewBuffer(buf)) //We have to create a new Buffer, because reqBodyReader1 will be read. + c.Request.Body = reqBodyReader2 + reqBody = readBody(reqBodyReader1) + } // other handler can change c.Path so: path := c.Request.URL.Path @@ -86,7 +90,9 @@ func LoggerMiddleware(logger logrus.FieldLogger) gin.HandlerFunc { } if strings.HasPrefix(path, "/api/") { //only debug log request/response from api endpoint. - entry.WithField("bodyType", "request").Debugln(readBody(reqBodyReader1)) // Print request body + if len(reqBody) > 0 { + entry.WithField("bodyType", "request").Debugln(reqBody) // Print request body + } entry.WithField("bodyType", "response").Debugln(blw.body.String()) } }