package logger import ( "context" "fmt" "os" ) var defaultLogger *Logger func init() { defaultLogger = New() } func Default() *Logger { return defaultLogger } func SetDefault(l *Logger) { defaultLogger = l } func Debug(format string, args ...interface{}) { defaultLogger.log(DEBUG, format, args...) } func Info(format string, args ...interface{}) { defaultLogger.log(INFO, format, args...) } func Warn(format string, args ...interface{}) { defaultLogger.log(WARN, format, args...) } func Error(format string, args ...interface{}) { defaultLogger.log(ERROR, format, args...) } func Fatal(format string, args ...interface{}) { defaultLogger.log(FATAL, format, args...) os.Exit(1) } func Panic(format string, args ...interface{}) { defaultLogger.log(PANIC, format, args...) panic(fmt.Sprintf(format, args...)) } func DebugCtx(ctx context.Context, format string, args ...interface{}) { defaultLogger.logCtx(DEBUG, ctx, format, args...) } func InfoCtx(ctx context.Context, format string, args ...interface{}) { defaultLogger.logCtx(INFO, ctx, format, args...) } func WarnCtx(ctx context.Context, format string, args ...interface{}) { defaultLogger.logCtx(WARN, ctx, format, args...) } func ErrorCtx(ctx context.Context, format string, args ...interface{}) { defaultLogger.logCtx(ERROR, ctx, format, args...) } func FatalCtx(ctx context.Context, format string, args ...interface{}) { defaultLogger.logCtx(FATAL, ctx, format, args...) os.Exit(1) } func PanicCtx(ctx context.Context, format string, args ...interface{}) { defaultLogger.logCtx(PANIC, ctx, format, args...) panic(fmt.Sprintf(format, args...)) } func DebugField(message string, keyValues ...interface{}) { defaultLogger.logField(DEBUG, message, keyValues...) } func InfoField(message string, keyValues ...interface{}) { defaultLogger.logField(INFO, message, keyValues...) } func WarnField(message string, keyValues ...interface{}) { defaultLogger.logField(WARN, message, keyValues...) } func ErrorField(message string, keyValues ...interface{}) { defaultLogger.logField(ERROR, message, keyValues...) } func FatalField(message string, keyValues ...interface{}) { defaultLogger.logField(FATAL, message, keyValues...) os.Exit(1) } func PanicField(message string, keyValues ...interface{}) { defaultLogger.logField(PANIC, message, keyValues...) panic(message) }