package log import ( "context" "log/slog" ) type logger int var loggerKey logger // NewContext returns a new Context that carries the specified logger. // // Discussion why this is not part of slog itself: https://github.com/golang/go/issues/58243. func NewContext(ctx context.Context, logger *slog.Logger) context.Context { return context.WithValue(ctx, loggerKey, logger) } // FromContext returns the Logger value stored in ctx, if any. // // Discussion why this is not part of slog itself: https://github.com/golang/go/issues/58243. func FromContext(ctx context.Context) (*slog.Logger, bool) { u, ok := ctx.Value(loggerKey).(*slog.Logger) return u, ok }