diff --git a/middleware/logger/logger_test.go b/middleware/logger/logger_test.go index 6876a7219f..94b68d9751 100644 --- a/middleware/logger/logger_test.go +++ b/middleware/logger/logger_test.go @@ -386,13 +386,14 @@ func Test_Logger_AppendUint(t *testing.T) { })) app.Get("/", func(c *fiber.Ctx) error { + c.Response().Header.SetContentLength(5) return c.SendString("hello") }) resp, err := app.Test(httptest.NewRequest(fiber.MethodGet, "/", nil)) utils.AssertEqual(t, nil, err) utils.AssertEqual(t, fiber.StatusOK, resp.StatusCode) - utils.AssertEqual(t, "0 5 200", buf.String()) + utils.AssertEqual(t, "-2 5 200", buf.String()) } // go test -run Test_Logger_Data_Race -race @@ -629,7 +630,7 @@ func Test_Logger_ByteSent_Streaming(t *testing.T) { resp, err := app.Test(httptest.NewRequest(fiber.MethodGet, "/", nil)) utils.AssertEqual(t, nil, err) utils.AssertEqual(t, fiber.StatusOK, resp.StatusCode) - utils.AssertEqual(t, "0 0 200", buf.String()) + utils.AssertEqual(t, "-2 -1 200", buf.String()) } // go test -run Test_Logger_EnableColors diff --git a/middleware/logger/tags.go b/middleware/logger/tags.go index 9a10279eca..c348871c42 100644 --- a/middleware/logger/tags.go +++ b/middleware/logger/tags.go @@ -2,6 +2,7 @@ package logger import ( "fmt" + "strconv" "strings" "github.com/gofiber/fiber/v2" @@ -85,13 +86,10 @@ func createTagMap(cfg *Config) map[string]LogFunc { return output.Write(c.Body()) }, TagBytesReceived: func(output Buffer, c *fiber.Ctx, data *Data, extraParam string) (int, error) { - return appendInt(output, len(c.Request().Body())) + return output.WriteString(strconv.Itoa((c.Request().Header.ContentLength()))) }, TagBytesSent: func(output Buffer, c *fiber.Ctx, data *Data, extraParam string) (int, error) { - if c.Response().Header.ContentLength() < 0 { - return appendInt(output, 0) - } - return appendInt(output, len(c.Response().Body())) + return output.WriteString(strconv.Itoa((c.Response().Header.ContentLength()))) }, TagRoute: func(output Buffer, c *fiber.Ctx, data *Data, extraParam string) (int, error) { return output.WriteString(c.Route().Path)