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