Example #1
0
 /**
  * Write a message to the log.
  *
  * @param array $event log data event
  */
 protected function doWrite(array $event)
 {
     $priority = $this->priorityMap[$event['priority']];
     $extra = $event['extra'];
     if ($extra instanceof Traversable) {
         $extra = iterator_to_array($extra);
     } elseif (!is_array($extra)) {
         $extra = [];
     }
     if ($this->contextContainsException($extra)) {
         /** @var \Throwable $exception */
         $exception = $extra['exception'];
         unset($extra['exception']);
         if ($event['message'] !== $exception->getMessage()) {
             $exception = new ContextException($event['message'], $exception->getCode(), $exception);
         }
         $this->client->getRaven()->captureException($exception, ['extra' => $this->sanitizeContextData($extra), 'level' => $priority]);
         return;
     }
     $stack = isset($extra['stack']) && is_array($extra['stack']) ? $extra['stack'] : null;
     if (!$stack) {
         $stack = $this->cleanBacktrace(debug_backtrace());
         if (!count($stack)) {
             $stack = false;
         }
     }
     $this->client->getRaven()->captureMessage($event['message'], $this->sanitizeContextData($extra), $priority, $stack);
 }