log in logfmt via zap, with nicer console output in dev
1 file changed, 48 insertions(+), 0 deletions(-)
changed files
A internal/log/log.go
@@ -0,0 +1,48 @@ +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() +}