You are here

public function ConfigUpdateUiDrush8Logger::log in Configuration Update Manager 8

Overrides RfcLoggerTrait::log

File

config_update_ui/src/Logger/ConfigUpdateUiDrush8Logger.php, line 39

Class

ConfigUpdateUiDrush8Logger
Provides Drush 8 logging in a class.

Namespace

Drupal\config_update_ui\Logger

Code

public function log($level, $message, array $context = []) {

  // Translate the RFC logging levels into their Drush counterparts, more or
  // less.
  // @todo ALERT, CRITICAL and EMERGENCY are considered show-stopping errors,
  // and they should cause Drush to exit or panic. Not sure how to handle
  // this, though.
  switch ($level) {
    case RfcLogLevel::ALERT:
    case RfcLogLevel::CRITICAL:
    case RfcLogLevel::EMERGENCY:
    case RfcLogLevel::ERROR:
      $error_type = LogLevel::ERROR;
      break;
    case RfcLogLevel::WARNING:
      $error_type = LogLevel::WARNING;
      break;
    case RfcLogLevel::DEBUG:
      $error_type = LogLevel::DEBUG;
      break;
    case RfcLogLevel::INFO:
      $error_type = LogLevel::INFO;
      break;
    case RfcLogLevel::NOTICE:
      $error_type = LogLevel::NOTICE;
      break;

    // TODO: Unknown log levels that are not defined
    // in Psr\Log\LogLevel or Drush\Log\LogLevel SHOULD NOT be used.  See
    // https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md
    // We should convert these to 'notice'.
    default:
      $error_type = $level;
      break;
  }

  // Populate the message placeholders and then replace them in the message.
  $message_placeholders = $this->parser
    ->parseMessagePlaceholders($message, $context);
  $message = empty($message_placeholders) ? $message : strtr($message, $message_placeholders);
  drush_log($message, $error_type);
}