diff --git a/logger.go b/logger.go index 1e6cf77a..54ba9cf0 100644 --- a/logger.go +++ b/logger.go @@ -236,13 +236,14 @@ func LoggerWithConfig(conf LoggerConfig) HandlerFunc { // Start timer start := time.Now() path := c.Request.URL.Path + fullPath := c.FullPath() raw := c.Request.URL.RawQuery // Process request c.Next() - // Log only when path is not being skipped - if _, ok := skip[path]; !ok { + // Log only when fullPath is not being skipped + if _, ok := skip[fullPath]; !ok { param := LogFormatterParams{ Request: c.Request, isTerm: isTerm, diff --git a/logger_test.go b/logger_test.go index b93e1e04..9c2d90db 100644 --- a/logger_test.go +++ b/logger_test.go @@ -385,16 +385,26 @@ func TestErrorLogger(t *testing.T) { func TestLoggerWithWriterSkippingPaths(t *testing.T) { buffer := new(strings.Builder) router := New() - router.Use(LoggerWithWriter(buffer, "/skipped")) + router.Use(LoggerWithWriter(buffer, "/skipped", "/skippedUsers/:id")) router.GET("/logged", func(c *Context) {}) + router.GET("/loggedUsers/:id", func(c *Context) {}) router.GET("/skipped", func(c *Context) {}) + router.GET("/skippedUsers/:id", func(c *Context) {}) PerformRequest(router, "GET", "/logged") assert.Contains(t, buffer.String(), "200") + buffer.Reset() + PerformRequest(router, "GET", "/loggedUsers/2") + assert.Contains(t, buffer.String(), "200") + buffer.Reset() PerformRequest(router, "GET", "/skipped") - assert.Contains(t, buffer.String(), "") + assert.Equal(t, "", buffer.String()) + + buffer.Reset() + PerformRequest(router, "GET", "/skippedUsers/3") + assert.Equal(t, "", buffer.String()) } func TestLoggerWithConfigSkippingPaths(t *testing.T) { @@ -402,17 +412,27 @@ func TestLoggerWithConfigSkippingPaths(t *testing.T) { router := New() router.Use(LoggerWithConfig(LoggerConfig{ Output: buffer, - SkipPaths: []string{"/skipped"}, + SkipPaths: []string{"/skipped", "/skippedUsers/:id"}, })) router.GET("/logged", func(c *Context) {}) + router.GET("/loggedUsers/:id", func(c *Context) {}) router.GET("/skipped", func(c *Context) {}) + router.GET("/skippedUsers/:id", func(c *Context) {}) PerformRequest(router, "GET", "/logged") assert.Contains(t, buffer.String(), "200") + buffer.Reset() + PerformRequest(router, "GET", "/loggedUsers/2") + assert.Contains(t, buffer.String(), "200") + buffer.Reset() PerformRequest(router, "GET", "/skipped") - assert.Contains(t, buffer.String(), "") + assert.Equal(t, "", buffer.String()) + + buffer.Reset() + PerformRequest(router, "GET", "/skippedUsers/3") + assert.Equal(t, "", buffer.String()) } func TestDisableConsoleColor(t *testing.T) {