all repos — homestead @ 5e134ca66adce54e0d2fa888c0cd47619366fdda

Code for my website

log: enable setting log level from environment variable

Alan Pearce
commit

5e134ca66adce54e0d2fa888c0cd47619366fdda

parent

0459a022a8a7d952d81196555e052b8a809db88b

1 file changed, 14 insertions(+), 1 deletion(-)

jump to
M internal/log/log.gointernal/log/log.go
@@ -33,15 +33,28 @@ func Fatal(msg string, rest ...any) {
logger.Fatalw(msg, rest...) } +func getLevelFromEnv() (zapcore.Level, error) { + if str, found := os.LookupEnv("LOG_LEVEL"); found { + l, err := zap.ParseAtomicLevel(str) + return l.Level(), err + } + return zap.InfoLevel, nil +} + func Configure(isProduction bool) { var l *zap.Logger + level, err := getLevelFromEnv() + if err != nil { + panic(err) + } if isProduction { cfg := zap.NewProductionEncoderConfig() cfg.TimeKey = "" - l = zap.New(zapcore.NewCore(zaplogfmt.NewEncoder(cfg), os.Stderr, zapcore.InfoLevel)) + l = zap.New(zapcore.NewCore(zaplogfmt.NewEncoder(cfg), os.Stderr, level)) } else { cfg := prettyconsole.NewConfig() cfg.EncoderConfig.TimeKey = "" + cfg.Level.SetLevel(level) l = zap.Must(cfg.Build()) } logger = l.WithOptions(zap.AddCallerSkip(1)).Sugar()