Sfoglia il codice sorgente

make context.Keys available as LogFormatterParams (#1779)

* make context available as LogFormatterParams

* pass context Keys to LogFormatterParams

* update logger test to check for Key param
Adam Zielinski 6 anni fa
parent
commit
3dc247893e
2 ha cambiato i file con 7 aggiunte e 0 eliminazioni
  1. 3 0
      logger.go
  2. 4 0
      logger_test.go

+ 3 - 0
logger.go

@@ -66,6 +66,8 @@ type LogFormatterParams struct {
 	IsTerm bool
 	// BodySize is the size of the Response Body
 	BodySize int
+	// Keys are the keys set on the request's context.
+	Keys map[string]interface{}
 }
 
 // StatusCodeColor is the ANSI color for appropriately logging http status code to a terminal.
@@ -227,6 +229,7 @@ func LoggerWithConfig(conf LoggerConfig) HandlerFunc {
 			param := LogFormatterParams{
 				Request: c.Request,
 				IsTerm:  isTerm,
+				Keys:    c.Keys,
 			}
 
 			// Stop timer

+ 4 - 0
logger_test.go

@@ -181,6 +181,7 @@ func TestLoggerWithFormatter(t *testing.T) {
 
 func TestLoggerWithConfigFormatting(t *testing.T) {
 	var gotParam LogFormatterParams
+	var gotKeys map[string]interface{}
 	buffer := new(bytes.Buffer)
 
 	router := New()
@@ -204,6 +205,7 @@ func TestLoggerWithConfigFormatting(t *testing.T) {
 	router.GET("/example", func(c *Context) {
 		// set dummy ClientIP
 		c.Request.Header.Set("X-Forwarded-For", "20.20.20.20")
+		gotKeys = c.Keys
 	})
 	performRequest(router, "GET", "/example?a=100")
 
@@ -223,6 +225,8 @@ func TestLoggerWithConfigFormatting(t *testing.T) {
 	assert.Equal(t, "GET", gotParam.Method)
 	assert.Equal(t, "/example?a=100", gotParam.Path)
 	assert.Empty(t, gotParam.ErrorMessage)
+	assert.Empty(t, gotParam.ErrorMessage)
+	assert.Equal(t, gotKeys, gotParam.Keys)
 
 }