linstrom/web/public/middleware/traceRequestInfo.go
mStar 12c9e17c4b
Some checks failed
/ docker (push) Failing after 2m57s
Lots of progress on public AP interface
- Read handler for create activities (notes only so far)
- Read handler for note objects
- Structure laid out for other objects, activities and collections
- DB structure for activities created
- Update access logging

TODO: Create collections type in DB to describe a collection group
2025-05-04 22:08:06 +02:00

28 lines
647 B
Go

package webmiddleware
import (
"bytes"
"io"
"net/http"
"time"
webutils "git.mstar.dev/mstar/goutils/http"
"github.com/rs/zerolog/hlog"
)
func TraceRequestInfoMiddleware(h http.Handler) http.Handler {
return webutils.ChainMiddlewares(
h,
hlog.AccessHandler(func(r *http.Request, status, size int, duration time.Duration) {
body, _ := io.ReadAll(r.Body)
r.Body = io.NopCloser(bytes.NewReader(body))
hlog.FromRequest(r).Trace().Any("headers", r.Header).
Bytes("body", body).
Str("method", r.Method).
Stringer("url", r.URL).
Int("status", status).
Int("size", size).
Dur("duration", duration)
}),
)
}