log: add logger.With and SetLevel
1 file changed, 17 insertions(+), 3 deletions(-)
jump to
M log/log.go → log/log.go
@@ -41,6 +41,11 @@ return &Logger{ logger: l.logger.Named(name), } } +func (l Logger) With(args ...any) *Logger { + return &Logger{ + logger: l.logger.With(args...), + } +} func (l Logger) GetLogger() *zap.Logger { return l.logger.Desugar()@@ -48,24 +53,29 @@ } func getLevelFromEnv() (zapcore.Level, error) { if str, found := os.LookupEnv("LOG_LEVEL"); found { - l, err := zap.ParseAtomicLevel(str) + l, err := zapcore.ParseLevel(str) - return l.Level(), err + return l, err } return zap.InfoLevel, nil } +var atom zap.AtomicLevel + func Configure(isProduction bool) *Logger { var l *zap.Logger + atom = zap.NewAtomicLevel() level, err := getLevelFromEnv() if err != nil { panic(err) } + atom.SetLevel(level) + if isProduction { cfg := zap.NewProductionEncoderConfig() cfg.TimeKey = "" - l = zap.New(zapcore.NewCore(zaplogfmt.NewEncoder(cfg), os.Stderr, level)) + l = zap.New(zapcore.NewCore(zaplogfmt.NewEncoder(cfg), os.Stderr, atom)) } else { cfg := prettyconsole.NewEncoderConfig() cfg.TimeKey = ""@@ -85,3 +95,7 @@ return &Logger{ logger: l.WithOptions(zap.AddCallerSkip(1)).Sugar(), } } + +func SetLevel(level zapcore.Level) { + atom.SetLevel(level) +}