/** * Конфигурирует экземпляр логгера * @param array $config опции конфигурации * @return void * @throws ConfigurationError */ private function configureLogger(array $config = []) { if (isset($config['__logger'])) { $loggerOptions = $config['__logger']; if (!isset($loggerOptions['class'])) { throw new ConfigurationError(self::ERR__LOGGER_CLASS); } if (!isset($loggerOptions['options'])) { throw new ConfigurationError(self::ERR__LOGGER_OPTIONS); } $this->logger = new $loggerOptions['class'](); $this->logger->configure($loggerOptions['options']); } }
/** * Производит конфигурирование компонента * * @param array $config опции конфигурации * * @return $this * @throws ConfigurationError */ public function configure(array $config = []) { if (!isset($config['name'])) { throw new ConfigurationError(self::ERR__LOGGER_NAME); } if (!isset($config['severity'])) { $config['severity'] = 'NOTICE'; } if (!isset($config['handler']['class'])) { throw new ConfigurationError(self::ERR__LOGGER_HANDLER_CLASS); } if (!isset($config['handler']['name'])) { $config['handler']['name'] = 'ServiceTools'; } $severity = sprintf('ServiceTools\\Core\\Loggers\\AbstractLogger::%s', $config['severity']); $severity = defined($severity) ? constant($severity) : AbstractLogger::NOTICE; $this->severity = $severity; $this->impl = new Logger($config['name']); /* @var HandlerInterface $handler */ $handler = new $config['handler']['class']($config['handler']['name']); $this->impl->pushHandler($handler); return parent::configure($config); }