36 lines
837 B
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),
|
|
)
|
|
}
|