/** * 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); }
/** * @param Client $client * @param EventManagerInterface $eventManager */ public function registerHandlers(Client $client, EventManagerInterface $eventManager) { $options = $client->getOptions(); $errorHandler = $client->getErrorHandler(); if ($options->isRegisterErrorHandler()) { $errorHandler->registerErrorHandler(); } if ($options->isRegisterExceptionHandler()) { $errorHandler->registerExceptionHandler(); } if ($options->isRegisterShutdownFunction()) { $errorHandler->registerShutdownFunction(); } if ($options->isRegisterErrorListener()) { $errorListener = $client->getErrorHandlerListener(); $errorListener->attach($eventManager, $options->getErrorHandlerListenerPriority()); } }