main
1package log
2
3import (
4 "net/http"
5
6 "github.com/rs/zerolog"
7 "github.com/xlgmokha/x/pkg/mapper"
8)
9
10func HTTP(logger *zerolog.Logger) func(http.Handler) http.Handler {
11 return func(next http.Handler) http.Handler {
12 return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
13 ctx := logger.WithContext(r.Context())
14
15 defer func() {
16 WithFields(ctx, mapper.MapFrom[*http.Request, Fields](r))
17 zerolog.Ctx(ctx).Print()
18 }()
19
20 next.ServeHTTP(w, r.WithContext(ctx))
21 })
22 }
23}