Files

45 lines
846 B
Go

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()
}