package logger import ( "log/slog" "os" ) var ( defaultLevel = slog.LevelInfo logger *slog.Logger ) func init() { opts := &slog.HandlerOptions{ Level: defaultLevel, } logger = slog.New(slog.NewJSONHandler(os.Stdout, opts)) slog.SetDefault(logger) } func SetLevel(level slog.Level) { opts := &slog.HandlerOptions{ Level: level, } logger = slog.New(slog.NewJSONHandler(os.Stdout, opts)) slog.SetDefault(logger) } func SetTextHandler() { opts := &slog.HandlerOptions{ Level: defaultLevel, } logger = slog.New(slog.NewTextHandler(os.Stdout, opts)) slog.SetDefault(logger) } func Debug(msg string, args ...any) { slog.Debug(msg, args...) } func Info(msg string, args ...any) { slog.Info(msg, args...) } func Warn(msg string, args ...any) { slog.Warn(msg, args...) } func Error(msg string, args ...any) { slog.Error(msg, args...) } func With(args ...any) *slog.Logger { return slog.With(args...) }