package log import ( "context" "io" "gitoa.ru/go-4devs/log/field" "gitoa.ru/go-4devs/log/level" ) //nolint:gochecknoglobals var global = With(New(), WithCaller(KeySource, 1, false), WithLevel(KeyLevel, level.Debug), WithExit(level.Alert), WithPanic(level.Emergency), ) // SetLogger sets global used logger. This function is not thread-safe. func SetLogger(l Logger) { global = l } // Log return global logger. func Log() Logger { return global } // Emerg log by emergency level. func Emerg(ctx context.Context, args ...interface{}) { global.Emerg(ctx, args...) } // Alert log by alert level. func Alert(ctx context.Context, args ...interface{}) { global.Alert(ctx, args...) } // Crit log by critical level. func Crit(ctx context.Context, args ...interface{}) { global.Crit(ctx, args...) } // Err log by error level. func Err(ctx context.Context, args ...interface{}) { global.Err(ctx, args...) } // Warn logs by warning level. func Warn(ctx context.Context, args ...interface{}) { global.Warn(ctx, args...) } // Notice log by notice level. func Notice(ctx context.Context, args ...interface{}) { global.Notice(ctx, args...) } // Info log by info level. func Info(ctx context.Context, args ...interface{}) { global.Info(ctx, args...) } // Debug log by debug level. func Debug(ctx context.Context, args ...interface{}) { global.Debug(ctx, args...) } // Print log by info level and arguments. func Print(args ...interface{}) { global.Print(args...) } // Fatal log by alert level and arguments. func Fatal(args ...interface{}) { global.Fatal(args...) } // Panic log by emergency level and arguments. func Panic(args ...interface{}) { global.Panic(args...) } // Println log by info level and arguments. func Println(args ...interface{}) { global.Println(args...) } // Fatalln log by alert level and arguments. func Fatalln(args ...interface{}) { global.Fatalln(args...) } // Panicln log by emergency level and arguments. func Panicln(args ...interface{}) { global.Panicln(args...) } // EmergKVs sugared log by emergency level and key-values. func EmergKVs(ctx context.Context, msg string, args ...interface{}) { global.EmergKVs(ctx, msg, args...) } // AlertKVs sugared log by alert level and key-values. func AlertKVs(ctx context.Context, msg string, args ...interface{}) { global.AlertKVs(ctx, msg, args...) } // CritKVs sugared log by critcal level and key-values. func CritKVs(ctx context.Context, msg string, args ...interface{}) { global.CritKVs(ctx, msg, args...) } // ErrKVs sugared log by error level and key-values. func ErrKVs(ctx context.Context, msg string, args ...interface{}) { global.ErrKVs(ctx, msg, args...) } // WarnKVs sugared log by warning level and key-values. func WarnKVs(ctx context.Context, msg string, args ...interface{}) { global.WarnKVs(ctx, msg, args...) } // NoticeKVs sugared log by notice level and key-values. func NoticeKVs(ctx context.Context, msg string, args ...interface{}) { global.NoticeKVs(ctx, msg, args...) } // InfoKVs sugared log by info level and key-values. func InfoKVs(ctx context.Context, msg string, args ...interface{}) { global.InfoKVs(ctx, msg, args...) } // DebugKVs sugared log by debug level and key-values. func DebugKVs(ctx context.Context, msg string, args ...interface{}) { global.DebugKVs(ctx, msg, args...) } // EmergKV log by emergency level and key-values. func EmergKV(ctx context.Context, msg string, args ...field.Field) { global.EmergKV(ctx, msg, args...) } // AlertKV log by alert level and key-values. func AlertKV(ctx context.Context, msg string, args ...field.Field) { global.AlertKV(ctx, msg, args...) } // CritKV log by critcal level and key-values. func CritKV(ctx context.Context, msg string, args ...field.Field) { global.CritKV(ctx, msg, args...) } // ErrKV log by error level and key-values. func ErrKV(ctx context.Context, msg string, args ...field.Field) { global.ErrKV(ctx, msg, args...) } // WarnKV log by warning level and key-values. func WarnKV(ctx context.Context, msg string, args ...field.Field) { global.WarnKV(ctx, msg, args...) } // NoticeKV log by notice level and key-values. func NoticeKV(ctx context.Context, msg string, args ...field.Field) { global.NoticeKV(ctx, msg, args...) } // InfoKV log by info level and key-values. func InfoKV(ctx context.Context, msg string, args ...field.Field) { global.InfoKV(ctx, msg, args...) } // DebugKV log by debug level and key-values. func DebugKV(ctx context.Context, msg string, args ...field.Field) { global.DebugKV(ctx, msg, args...) } // Emergf log by emergency level by format and arguments. func Emergf(ctx context.Context, format string, args ...interface{}) { global.Emergf(ctx, format, args...) } // Alertf log by alert level by format and arguments. func Alertf(ctx context.Context, format string, args ...interface{}) { global.Alertf(ctx, format, args...) } // Critf log by critical level by format and arguments. func Critf(ctx context.Context, format string, args ...interface{}) { global.Critf(ctx, format, args...) } // Errf log by error level by format and arguments. func Errf(ctx context.Context, format string, args ...interface{}) { global.Errf(ctx, format, args...) } // Warnf log by warning level by format and arguments. func Warnf(ctx context.Context, format string, args ...interface{}) { global.Warnf(ctx, format, args...) } // Noticef log by notice level by format and arguments. func Noticef(ctx context.Context, format string, args ...interface{}) { global.Noticef(ctx, format, args...) } // Infof log by info level by format and arguments. func Infof(ctx context.Context, format string, args ...interface{}) { global.Noticef(ctx, format, args...) } // Debugf log by debug level by format and arguments. func Debugf(ctx context.Context, format string, args ...interface{}) { global.Debugf(ctx, format, args...) } // Printf log by info level by format and arguments without context. func Printf(format string, args ...interface{}) { global.Printf(format, args...) } // Fatalf log by alert level by format and arguments without context. func Fatalf(format string, args ...interface{}) { global.Fatalf(format, args...) } // Panicf log by emergency level and arguments without context. func Panicf(format string, args ...interface{}) { global.Panicf(format, args...) } func Writer(ctx context.Context, level level.Level) io.Writer { return global.Writer(ctx, level) }