/**
  * Конфигурирует экземпляр логгера
  * @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']);
     }
 }
Example #2
0
 /**
  * Производит конфигурирование компонента
  *
  * @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);
 }