You are here

public function ExceptionLoggingSubscriber::onError in Drupal 9

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/EventSubscriber/ExceptionLoggingSubscriber.php \Drupal\Core\EventSubscriber\ExceptionLoggingSubscriber::onError()

Log not-otherwise-specified errors, including HTTP 500.

Parameters

\Symfony\Component\HttpKernel\Event\ExceptionEvent $event: The event to process.

File

core/lib/Drupal/Core/EventSubscriber/ExceptionLoggingSubscriber.php, line 67

Class

ExceptionLoggingSubscriber
Log exceptions without further handling.

Namespace

Drupal\Core\EventSubscriber

Code

public function onError(ExceptionEvent $event) {
  $exception = $event
    ->getThrowable();
  $error = Error::decodeException($exception);
  $this->logger
    ->get('php')
    ->log($error['severity_level'], '%type: @message in %function (line %line of %file).', $error);
  $is_critical = !$exception instanceof HttpExceptionInterface || $exception
    ->getStatusCode() >= 500;
  if ($is_critical) {
    error_log(sprintf('Uncaught PHP Exception %s: "%s" at %s line %s', get_class($exception), $exception
      ->getMessage(), $exception
      ->getFile(), $exception
      ->getLine()));
  }
}