solrlog-1.0.1/src/EventSubscriber/TerminateSubscriber.php
src/EventSubscriber/TerminateSubscriber.php
<?php
namespace Drupal\solrlog\EventSubscriber;
use Drupal\solrlog\DelayedLoggerInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\TerminateEvent;
use Symfony\Component\HttpKernel\KernelEvents;
/**
* Dump log messages to solr in the end of request.
*
* @package Drupal\solrlog\EventSubscriber
*/
class TerminateSubscriber implements EventSubscriberInterface {
/**
* TerminateSubscriber constructor.
*
* @param \Drupal\solrlog\DelayedLoggerInterface $delayedLogger
* The logger.
*/
public function __construct(
protected DelayedLoggerInterface $delayedLogger) {
}
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents() {
return [
KernelEvents::TERMINATE => [
['onTerminate', 100],
],
];
}
/**
* Dump delayed log messages.
*
* @param \Symfony\Component\HttpKernel\Event\TerminateEvent $event
* The terminate request event.
*/
public function onTerminate(TerminateEvent $event) : void {
$this->delayedLogger->dump();
}
}
