logging update with context

This commit is contained in:
2025-03-10 16:35:22 -04:00
parent 180e0a96e7
commit 96975c7bd2
12 changed files with 141 additions and 38 deletions

View File

@@ -0,0 +1,26 @@
package logging
import (
"context"
"log/slog"
"os"
)
type ContextHandler struct {
slog.Handler
}
func (h *ContextHandler) Handle(ctx context.Context, r slog.Record) error {
if requestID, ok := ctx.Value("trace_id").(string); ok {
r.AddAttrs(slog.String("trace_id", requestID))
}
return h.Handler.Handle(ctx, r)
}
func NewLogger() *slog.Logger {
baseHandler := slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{AddSource: false})
customHandler := &ContextHandler{Handler: baseHandler}
logger := slog.New(customHandler)
return logger
}