LogResetter.php 901 B

1234567891011121314151617181920212223242526272829303132
  1. <?php declare(strict_types=1);
  2. namespace Packagist\WebBundle\Service;
  3. use Symfony\Component\DependencyInjection\ContainerInterface;
  4. use Monolog\Handler\FingersCrossedHandler;
  5. class LogResetter
  6. {
  7. private $handlers;
  8. public function __construct(ContainerInterface $container, array $fingersCrossedHandlerNames)
  9. {
  10. $this->handlers = [];
  11. foreach ($fingersCrossedHandlerNames as $name) {
  12. $handler = $container->get('monolog.handler.'.$name);
  13. if (!$handler instanceof FingersCrossedHandler) {
  14. throw new \RuntimeException('Misconfiguration: '.$name.' given as a fingers_crossed handler type but '.get_class($handler).' was found');
  15. }
  16. $this->handlers[] = $handler;
  17. }
  18. }
  19. public function reset()
  20. {
  21. foreach ($this->handlers as $handler) {
  22. $handler->clear();
  23. }
  24. }
  25. }