mirror of
https://github.com/apricote/hcloud-upload-image.git
synced 2026-01-13 21:31:03 +00:00
25 lines
429 B
Go
25 lines
429 B
Go
|
|
package contextlogger
|
||
|
|
|
||
|
|
import (
|
||
|
|
"context"
|
||
|
|
"log/slog"
|
||
|
|
)
|
||
|
|
|
||
|
|
type key int
|
||
|
|
|
||
|
|
var loggerKey key
|
||
|
|
|
||
|
|
func New(ctx context.Context, logger *slog.Logger) context.Context {
|
||
|
|
return context.WithValue(ctx, loggerKey, logger)
|
||
|
|
}
|
||
|
|
|
||
|
|
func From(ctx context.Context) *slog.Logger {
|
||
|
|
if ctxLogger := ctx.Value(loggerKey); ctxLogger != nil {
|
||
|
|
if logger, ok := ctxLogger.(*slog.Logger); ok {
|
||
|
|
return logger
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
return slog.New(discardHandler{})
|
||
|
|
}
|