Something went wrong. Try again.
everything you need to create an atproto appview
Something went wrong. Try again.
769 B · 38 lines
Go
at main
123456789101112131415161718192021222324252627282930313233343536373839package log
import ( "context" "os"
"github.com/charmbracelet/log")
type contextKey string
const loggerKey contextKey = "logger"
func New(component string) *log.Logger { logger := log.NewWithOptions(os.Stderr, log.Options{ ReportTimestamp: true, ReportCaller: false, }) if component != "" { logger = logger.With("component", component) } return logger}
func SubLogger(parent *log.Logger, component string) *log.Logger { return parent.With("component", component)}
func IntoContext(ctx context.Context, logger *log.Logger) context.Context { return context.WithValue(ctx, loggerKey, logger)}
func FromContext(ctx context.Context) *log.Logger { if logger, ok := ctx.Value(loggerKey).(*log.Logger); ok { return logger } return New("")}