summaryrefslogtreecommitdiff
path: root/pkg/logger/middleware.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/logger/middleware.go')
-rw-r--r--pkg/logger/middleware.go8
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",