package middleware
import (
)
type loggerKey struct{}
func ( context.Context) logging.Logger {
, := .Value(loggerKey{}).(logging.Logger)
if ! || == nil {
return logging.Nop{}
}
return logging.WithContext(, )
}
func ( context.Context, logging.Logger) context.Context {
return context.WithValue(, loggerKey{}, )
}
type setLogger struct {
Logger logging.Logger
}
func ( *Stack, logging.Logger) error {
return .Initialize.Add(&setLogger{Logger: }, After)
}
func ( *setLogger) () string {
return "SetLogger"
}
func ( *setLogger) ( context.Context, InitializeInput, InitializeHandler) (
InitializeOutput, Metadata, error,
) {
return .HandleInitialize(SetLogger(, .Logger), )
}