Sfoglia il codice sorgente

feat(logger): show query string in logger. (#999) close #988

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
Bo-Yi Wu 8 anni fa
parent
commit
e31cbdf241
2 ha cambiato i file con 7 aggiunte e 1 eliminazioni
  1. 5 0
      logger.go
  2. 2 1
      logger_test.go

+ 5 - 0
logger.go

@@ -77,6 +77,7 @@ func LoggerWithWriter(out io.Writer, notlogged ...string) HandlerFunc {
 		// Start timer
 		start := time.Now()
 		path := c.Request.URL.Path
+		raw := c.Request.URL.RawQuery
 
 		// Process request
 		c.Next()
@@ -97,6 +98,10 @@ func LoggerWithWriter(out io.Writer, notlogged ...string) HandlerFunc {
 			}
 			comment := c.Errors.ByType(ErrorTypePrivate).String()
 
+			if raw != "" {
+				path = path + "?" + raw
+			}
+
 			fmt.Fprintf(out, "[GIN] %v |%s %3d %s| %13v | %15s |%s  %s %-7s %s\n%s",
 				end.Format("2006/01/02 - 15:04:05"),
 				statusColor, statusCode, reset,

+ 2 - 1
logger_test.go

@@ -28,10 +28,11 @@ func TestLogger(t *testing.T) {
 	router.HEAD("/example", func(c *Context) {})
 	router.OPTIONS("/example", func(c *Context) {})
 
-	performRequest(router, "GET", "/example")
+	performRequest(router, "GET", "/example?a=100")
 	assert.Contains(t, buffer.String(), "200")
 	assert.Contains(t, buffer.String(), "GET")
 	assert.Contains(t, buffer.String(), "/example")
+	assert.Contains(t, buffer.String(), "a=100")
 
 	// I wrote these first (extending the above) but then realized they are more
 	// like integration tests because they test the whole logging process rather