diff options
Diffstat (limited to '')
-rw-r--r-- | pkg/logger/middleware.go | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/pkg/logger/middleware.go b/pkg/logger/middleware.go index d0a6a65..54cca96 100644 --- a/pkg/logger/middleware.go +++ b/pkg/logger/middleware.go @@ -8,7 +8,7 @@ import ( "time" ) -func Middleware(next http.Handler) http.Handler { +func Middleware(next http.Handler, recordBody bool) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if r.Method == "GET" && r.URL.Path == "/healthz" { next.ServeHTTP(w, r) @@ -29,7 +29,7 @@ func Middleware(next http.Handler) http.Handler { path := r.URL.Path query := r.URL.RawQuery - bw := newBodyWriter(w) + bw := newBodyWriter(w, recordBody) next.ServeHTTP(bw, r) @@ -45,8 +45,12 @@ func Middleware(next http.Handler) http.Handler { responseAttributes := []slog.Attr{ slog.Time("time", end.UTC()), slog.Duration("latency", end.Sub(start)), + slog.Int("length", bw.bytes), slog.Int("status", bw.status), } + if recordBody { + responseAttributes = append(responseAttributes, slog.String("body", bw.body.String())) + } attributes := []slog.Attr{ { Key: "request", |