summaryrefslogtreecommitdiff
path: root/pkg/logger/middleware.go
diff options
context:
space:
mode:
authorJulien Dessaux2024-10-13 16:10:22 +0200
committerJulien Dessaux2024-10-13 16:10:22 +0200
commit71702002cfdad4cf4a55a92c03ac660903a65744 (patch)
tree40e1d926c9d06f3cf29235eed173b7726db40a09 /pkg/logger/middleware.go
parentfix(tfstated): add unlock handler tests (diff)
downloadtfstated-71702002cfdad4cf4a55a92c03ac660903a65744.tar.gz
tfstated-71702002cfdad4cf4a55a92c03ac660903a65744.tar.bz2
tfstated-71702002cfdad4cf4a55a92c03ac660903a65744.zip
feat(logger): implement optional body logging
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",