コード例 #1
0
 /**
  * @param array $config
  * @return array
  * @throws InvalidConfigurationException
  */
 private static function validateAndNormaliseConfig(array $config)
 {
     if (!isset($config['name'])) {
         throw InvalidConfigurationException::missing('name', 'string');
     }
     if (!is_string($config['name'])) {
         throw InvalidConfigurationException::invalidType('name', $config['name'], 'string');
     }
     if (!isset($config['handlers'])) {
         throw InvalidConfigurationException::missing('handlers', 'string');
     }
     if (!is_string($config['handlers'])) {
         throw InvalidConfigurationException::invalidType('handlers', $config['handlers'], 'comma-separated string');
     }
     if (!isset($config['handler'])) {
         $config['handler'] = array();
     } elseif (!is_array($config['handler'])) {
         throw InvalidConfigurationException::invalidType('handler', $config['handler'], 'array of handler configurations');
     }
     foreach ($config['handler'] as $name => $handlerConfig) {
         $config['handler'][$name] = self::validateAndNormaliseSubTypeConfig('handler', $name, $handlerConfig);
         InvalidConfigurationException::assertIsValidFactory($config['handler'][$name]['factory'], 'EngineBlock_Log_Monolog_Handler_HandlerFactory');
     }
     if (!isset($config['processor'])) {
         $config['processor'] = array();
     } elseif (!is_array($config['processor'])) {
         throw InvalidConfigurationException::invalidType('processor', $config['processor'], 'array of processor configurations');
     }
     foreach ($config['processor'] as $name => $processorConfig) {
         $config['processor'][$name] = self::validateAndNormaliseSubTypeConfig('processor', $name, $processorConfig);
         InvalidConfigurationException::assertIsValidFactory($config['processor'][$name]['factory'], 'EngineBlock_Log_Monolog_Processor_ProcessorFactory');
     }
     return $config;
 }
コード例 #2
0
 /**
  * @param array $config
  * @return array
  * @throws InvalidConfigurationException
  */
 private static function validateAndNormaliseConfig(array $config)
 {
     if (!isset($config['ident'])) {
         throw InvalidConfigurationException::missing('ident', 'string');
     }
     if (!is_string($config['ident'])) {
         throw InvalidConfigurationException::invalidType('ident', $config['ident'], 'string');
     }
     if (!isset($config['min_level'])) {
         $config['min_level'] = PsrLogLevel::DEBUG;
     } elseif (!is_string($config['min_level'])) {
         throw InvalidConfigurationException::invalidType('min_level', $config['min_level'], 'string');
     }
     $config['min_level'] = strtolower($config['min_level']);
     if (!LogLevel::isValid($config['min_level'])) {
         throw new InvalidConfigurationException(sprintf("'min_level' is not a valid log level string, '%s' given", $config['min_level']));
     }
     if (!isset($config['formatter']['factory'])) {
         throw InvalidConfigurationException::missing("formatter.factory", 'string');
     }
     if (!is_string($config['formatter']['factory'])) {
         throw InvalidConfigurationException::invalidType("formatter.factory", $config['formatter']['factory'], 'string');
     }
     InvalidConfigurationException::assertIsValidFactory($config['formatter']['factory'], 'EngineBlock_Log_Monolog_Formatter_FormatterFactory');
     if (!isset($config['formatter']['conf'])) {
         $config['formatter']['conf'] = array();
     } elseif (!is_array($config['formatter']['conf'])) {
         throw InvalidConfigurationException::invalidType("formatter.conf", $config['formatter']['factory'], 'array');
     }
     return $config;
 }
 /**
  * @param array $config
  * @return array
  * @throws InvalidConfigurationException
  */
 private static function validateAndNormaliseConfig(array $config)
 {
     if (!isset($config['handler'])) {
         throw InvalidConfigurationException::missing('handler', 'string');
     }
     if (!is_string($config['handler'])) {
         throw InvalidConfigurationException::invalidType('handler', $config['ident'], 'string');
     }
     if (!isset($config['passthru_level'])) {
         $config['passthru_level'] = null;
     } elseif (!is_string($config['passthru_level'])) {
         throw InvalidConfigurationException::invalidType('passthru_level', $config['passthru_level'], 'string');
     } else {
         $config['passthru_level'] = strtolower($config['passthru_level']);
         if (!LogLevel::isValid($config['passthru_level'])) {
             throw new InvalidConfigurationException(sprintf("'passthru_level' is not a valid log level string, '%s' given", $config['passthru_level']));
         }
     }
     if (!isset($config['activation_strategy']['factory'])) {
         throw InvalidConfigurationException::missing("activation_strategy.factory", 'string');
     }
     if (!is_string($config['activation_strategy']['factory'])) {
         throw InvalidConfigurationException::invalidType("activation_strategy.factory", $config['activation_strategy']['factory'], 'string');
     }
     InvalidConfigurationException::assertIsValidFactory($config['activation_strategy']['factory'], 'EngineBlock_Log_Monolog_Handler_FingersCrossed_ActivationStrategyFactory');
     if (!isset($config['activation_strategy']['conf'])) {
         $config['activation_strategy']['conf'] = array();
     } elseif (!is_array($config['activation_strategy']['conf'])) {
         throw InvalidConfigurationException::invalidType("activation_strategy.conf", $config['activation_strategy']['factory'], 'array');
     }
     return $config;
 }
コード例 #4
0
 protected function _bootstrapLogging()
 {
     $configuration = $this->_application->getConfiguration();
     if (!isset($configuration->logger)) {
         throw new EngineBlock_Exception("No logger configuration defined! Logging is required, please configure the logger under the logger " . "key in your application.ini. See EngineBlock_Log_MonologLoggerFactory's docblock for more details.", EngineBlock_Exception::CODE_ALERT);
     }
     $loggerConfiguration = $configuration->logger->toArray();
     /** @var string|EngineBlock_Log_LoggerFactory $loggerFactory */
     $loggerFactory = $loggerConfiguration['factory'];
     EngineBlock_Log_InvalidConfigurationException::assertIsValidFactory($loggerFactory, 'EngineBlock_Log_LoggerFactory');
     $logger = $loggerFactory::factory($loggerConfiguration['conf'], $configuration->debug);
     $this->_application->setLogInstance($logger);
     $this->_application->setLogRequestId(uniqid());
 }