vendor/novaway/elasticsearch-bundle/src/Logger/ExceptionEventLogger.php line 28

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Novaway\ElasticsearchBundle\Logger;
  4. use Novaway\ElasticsearchBundle\Event\Behaviors\SearchEvent;
  5. use Novaway\ElasticsearchBundle\Event\ExceptionEvent;
  6. use Novaway\ElasticsearchBundle\Event\SearchQuery;
  7. use Novaway\ElasticsearchBundle\Event\SearchResult;
  8. use Psr\Log\LoggerInterface;
  9. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  10. use Symfony\Component\Serializer\Encoder\JsonEncoder;
  11. use Symfony\Component\Serializer\Normalizer\ArrayDenormalizer;
  12. use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
  13. use Symfony\Component\Serializer\Serializer;
  14. class ExceptionEventLogger implements EventSubscriberInterface
  15. {
  16.     /** @var LoggerInterface */
  17.     private $logger;
  18.     public function __construct(
  19.         LoggerInterface $logger
  20.     ) {
  21.         $this->logger $logger;
  22.     }
  23.     public function logException(ExceptionEvent $event)
  24.     {
  25.         $serializer = new Serializer([new ArrayDenormalizer(), new ObjectNormalizer()], [new JsonEncoder()]);
  26.         $this->logger->critical('Novaway ES : Exception', [
  27.             'queryData' => $serializer->serialize($event->getQueryData(), 'json', ['json_encode_options' => \JSON_PRETTY_PRINT]),
  28.             'exception' => $event->getException()
  29.         ]);
  30.     }
  31.     public static function getSubscribedEvents()
  32.     {
  33.         yield ExceptionEvent::NAME => 'logException';
  34.     }
  35. }