/**
  * @param array $config
  * @return ManualOrDecoratedActivationStrategy
  * @throws InvalidConfigurationException
  */
 public static function factory(array $config)
 {
     if (isset(self::$strategy)) {
         throw new RuntimeException("Cannot manufacture a second instance of this strategy, as the current instance is required for " . "explicit flushing of the log message buffer");
     }
     $config = self::validateAndNormaliseConfig($config);
     self::$strategy = new ManualOrDecoratedActivationStrategy(new ErrorLevelActivationStrategy($config['action_level']));
     return self::$strategy;
 }