make context available as LogFormatterParams

This commit is contained in:
Adam Zielinski 2019-02-23 18:12:12 -05:00
parent e6288e90eb
commit 59500f7c36
2 changed files with 7 additions and 0 deletions

View File

@ -66,6 +66,8 @@ type LogFormatterParams struct {
IsTerm bool
// BodySize is the size of the Response Body
BodySize int
// Context is the Context associated with the request.
Context *Context
}
// 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,
Context: c,
}
// Stop timer

View File

@ -181,6 +181,7 @@ func TestLoggerWithFormatter(t *testing.T) {
func TestLoggerWithConfigFormatting(t *testing.T) {
var gotParam LogFormatterParams
var gotCtx *Context
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")
gotCtx = c
})
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, gotCtx, gotParam.Context)
}