Merge 40991b4a82e4678ae5add25af7bb2c45213af929 into a64286a7760be2031209686ce4d36e99d42dd419

This commit is contained in:
Hanyu Cui 2024-02-01 16:16:16 +01:00 committed by GitHub
commit fe06083aaa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 27 additions and 6 deletions

View File

@ -236,13 +236,14 @@ func LoggerWithConfig(conf LoggerConfig) HandlerFunc {
// Start timer // Start timer
start := time.Now() start := time.Now()
path := c.Request.URL.Path path := c.Request.URL.Path
fullPath := c.FullPath()
raw := c.Request.URL.RawQuery raw := c.Request.URL.RawQuery
// Process request // Process request
c.Next() c.Next()
// Log only when path is not being skipped // Log only when fullPath is not being skipped
if _, ok := skip[path]; !ok { if _, ok := skip[fullPath]; !ok {
param := LogFormatterParams{ param := LogFormatterParams{
Request: c.Request, Request: c.Request,
isTerm: isTerm, isTerm: isTerm,

View File

@ -385,16 +385,26 @@ func TestErrorLogger(t *testing.T) {
func TestLoggerWithWriterSkippingPaths(t *testing.T) { func TestLoggerWithWriterSkippingPaths(t *testing.T) {
buffer := new(strings.Builder) buffer := new(strings.Builder)
router := New() router := New()
router.Use(LoggerWithWriter(buffer, "/skipped")) router.Use(LoggerWithWriter(buffer, "/skipped", "/skippedUsers/:id"))
router.GET("/logged", func(c *Context) {}) router.GET("/logged", func(c *Context) {})
router.GET("/loggedUsers/:id", func(c *Context) {})
router.GET("/skipped", func(c *Context) {}) router.GET("/skipped", func(c *Context) {})
router.GET("/skippedUsers/:id", func(c *Context) {})
PerformRequest(router, "GET", "/logged") PerformRequest(router, "GET", "/logged")
assert.Contains(t, buffer.String(), "200") assert.Contains(t, buffer.String(), "200")
buffer.Reset()
PerformRequest(router, "GET", "/loggedUsers/2")
assert.Contains(t, buffer.String(), "200")
buffer.Reset() buffer.Reset()
PerformRequest(router, "GET", "/skipped") 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) { func TestLoggerWithConfigSkippingPaths(t *testing.T) {
@ -402,17 +412,27 @@ func TestLoggerWithConfigSkippingPaths(t *testing.T) {
router := New() router := New()
router.Use(LoggerWithConfig(LoggerConfig{ router.Use(LoggerWithConfig(LoggerConfig{
Output: buffer, Output: buffer,
SkipPaths: []string{"/skipped"}, SkipPaths: []string{"/skipped", "/skippedUsers/:id"},
})) }))
router.GET("/logged", func(c *Context) {}) router.GET("/logged", func(c *Context) {})
router.GET("/loggedUsers/:id", func(c *Context) {})
router.GET("/skipped", func(c *Context) {}) router.GET("/skipped", func(c *Context) {})
router.GET("/skippedUsers/:id", func(c *Context) {})
PerformRequest(router, "GET", "/logged") PerformRequest(router, "GET", "/logged")
assert.Contains(t, buffer.String(), "200") assert.Contains(t, buffer.String(), "200")
buffer.Reset()
PerformRequest(router, "GET", "/loggedUsers/2")
assert.Contains(t, buffer.String(), "200")
buffer.Reset() buffer.Reset()
PerformRequest(router, "GET", "/skipped") 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) { func TestDisableConsoleColor(t *testing.T) {