You are here

public function RavenCommands::captureMessage in Raven: Sentry Integration 3.x

Same name and namespace in other branches
  1. 8.2 src/Commands/RavenCommands.php \Drupal\raven\Commands\RavenCommands::captureMessage()

Send a test message to Sentry.

Because messages are sent to Sentry asynchronously, there is no guarantee that the message was actually delivered successfully.

@option level The message level (debug, info, warning, error, fatal).

@command raven:captureMessage @usage drush raven:captureMessage Send test message to Sentry. @usage drush raven:captureMessage --level=error Send error message to Sentry. @usage drush raven:captureMessage 'Mic check.' Send "Mic check" message to Sentry.

Parameters

string $message: The message text.

array $options: An associative array of options.

File

src/Commands/RavenCommands.php, line 50

Class

RavenCommands
Provides Drush commands for Raven module.

Namespace

Drupal\raven\Commands

Code

public function captureMessage($message = 'Test message from Drush.', array $options = [
  'level' => 'info',
]) {
  if (!$this->ravenLogger) {
    throw new \Exception('Sentry logger service not available.');
  }
  if (!$this->ravenLogger
    ->getClient()) {
    throw new \Exception('Sentry client not available.');
  }
  $id = \Sentry\captureMessage($message, new Severity($options['level']));
  if (!$id) {
    throw new \Exception('Send failed.');
  }

  // Static analysis fix: LoggerInterface does not define a success method.
  if (method_exists($this
    ->logger(), 'success')) {
    $this
      ->logger()
      ->success(dt('Message sent as event %id.', [
      '%id' => $id,
    ]));
  }
}