package log import ( "os" zaplogfmt "github.com/sykesm/zap-logfmt" prettyconsole "github.com/thessem/zap-prettyconsole" "go.uber.org/zap" "go.uber.org/zap/zapcore" ) var logger *zap.SugaredLogger func DPanic(msg string, rest ...any) { logger.DPanicw(msg, rest...) } func Debug(msg string, rest ...any) { logger.Debugw(msg, rest...) } func Info(msg string, rest ...any) { logger.Infow(msg, rest...) } func Warn(msg string, rest ...any) { logger.Warnw(msg, rest...) } func Error(msg string, rest ...any) { logger.Errorw(msg, rest...) } func Panic(msg string, rest ...any) { logger.Panicw(msg, rest...) } func Fatal(msg string, rest ...any) { logger.Fatalw(msg, rest...) } func Configure(isProduction bool) { var l *zap.Logger if isProduction { cfg := zap.NewProductionEncoderConfig() cfg.TimeKey = "" l = zap.New(zapcore.NewCore(zaplogfmt.NewEncoder(cfg), os.Stderr, zapcore.InfoLevel)) } else { cfg := prettyconsole.NewConfig() cfg.EncoderConfig.TimeKey = "" l = zap.Must(cfg.Build()) } logger = l.WithOptions(zap.AddCallerSkip(1)).Sugar() }