Files
epic-ent/internal/infra/log/logger.go

36 lines
837 B
Go

package log
import (
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"epic-ent/internal/config"
)
func NewLogger(cfg *config.Config) (*zap.Logger, error) {
level := zapcore.InfoLevel
if err := level.Set(cfg.Log.Level); err != nil {
level = zapcore.InfoLevel
}
zapCfg := zap.NewProductionConfig()
zapCfg.Level = zap.NewAtomicLevelAt(level)
zapCfg.EncoderConfig.CallerKey = "caller"
zapCfg.EncoderConfig.StacktraceKey = "stacktrace"
if cfg.Log.Format == "console" {
devCfg := zap.NewDevelopmentConfig()
devCfg.Level = zap.NewAtomicLevelAt(level)
devCfg.EncoderConfig.CallerKey = "caller"
devCfg.EncoderConfig.StacktraceKey = "stacktrace"
return devCfg.Build(
zap.AddCaller(),
zap.AddStacktrace(zapcore.ErrorLevel),
)
}
return zapCfg.Build(
zap.AddCaller(),
zap.AddStacktrace(zapcore.ErrorLevel),
)
}