package logger import ( "os" "strings" "go.uber.org/zap" "go.uber.org/zap/zapcore" ) var Log *zap.SugaredLogger func init() { levelStr := os.Getenv("LOG_LEVEL") if levelStr == "" { levelStr = "info" } SetLevel(levelStr) } func SetLevel(levelStr string) { var level zapcore.Level switch strings.ToLower(levelStr) { case "trace", "debug": level = zap.DebugLevel case "info": level = zap.InfoLevel case "warn": level = zap.WarnLevel case "error": level = zap.ErrorLevel default: level = zap.InfoLevel } config := zap.NewDevelopmentConfig() config.Level = zap.NewAtomicLevelAt(level) config.EncoderConfig.EncodeLevel = zapcore.CapitalColorLevelEncoder // Customize the timestamp format if needed config.EncoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder logger, _ := config.Build() Log = logger.Sugar() }