func NewLogger()

in internal/logger/logger.go [41:66]


func NewLogger(cfg conf.LogConfig) (l *Logger, err error) {
	level, err := formatLogLevel(*cfg.LogLevel)
	if err != nil {
		return nil, err
	}
	lumberjackLogger := &lumberjack.Logger{
		Filename:   *cfg.LogPath + logName,
		MaxSize:    *cfg.MaxSize,
		MaxBackups: *cfg.MaxBackups,
	}

	ws := zapcore.AddSync(lumberjackLogger)

	eCfg := zap.NewProductionEncoderConfig()
	eCfg.EncodeTime = zapcore.RFC3339TimeEncoder
	enc := zapcore.NewJSONEncoder(eCfg)

	avl := zap.NewAtomicLevelAt(level)

	core := zapcore.NewCore(enc, ws, avl)

	logger := zap.New(core)
	defer logger.Sync()

	return &Logger{logger: logger}, nil
}