vendor/symfony/monolog-bridge/Logger.php line 23

  1. <?php
  2. /*
  3.  * This file is part of the Symfony package.
  4.  *
  5.  * (c) Fabien Potencier <[email protected]>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace Symfony\Bridge\Monolog;
  11. use Monolog\Logger as BaseLogger;
  12. use Monolog\ResettableInterface;
  13. use Symfony\Component\HttpFoundation\Request;
  14. use Symfony\Component\HttpKernel\Log\DebugLoggerInterface;
  15. use Symfony\Contracts\Service\ResetInterface;
  16. /**
  17.  * @author Fabien Potencier <[email protected]>
  18.  */
  19. class Logger extends BaseLogger implements DebugLoggerInterfaceResetInterface
  20. {
  21.     public function getLogs(Request $request null): array
  22.     {
  23.         if ($logger $this->getDebugLogger()) {
  24.             return $logger->getLogs($request);
  25.         }
  26.         return [];
  27.     }
  28.     public function countErrors(Request $request null): int
  29.     {
  30.         if ($logger $this->getDebugLogger()) {
  31.             return $logger->countErrors($request);
  32.         }
  33.         return 0;
  34.     }
  35.     public function clear()
  36.     {
  37.         if ($logger $this->getDebugLogger()) {
  38.             $logger->clear();
  39.         }
  40.     }
  41.     public function reset(): void
  42.     {
  43.         $this->clear();
  44.         if ($this instanceof ResettableInterface) {
  45.             parent::reset();
  46.         }
  47.     }
  48.     public function removeDebugLogger()
  49.     {
  50.         foreach ($this->processors as $k => $processor) {
  51.             if ($processor instanceof DebugLoggerInterface) {
  52.                 unset($this->processors[$k]);
  53.             }
  54.         }
  55.         foreach ($this->handlers as $k => $handler) {
  56.             if ($handler instanceof DebugLoggerInterface) {
  57.                 unset($this->handlers[$k]);
  58.             }
  59.         }
  60.     }
  61.     /**
  62.      * Returns a DebugLoggerInterface instance if one is registered with this logger.
  63.      */
  64.     private function getDebugLogger(): ?DebugLoggerInterface
  65.     {
  66.         foreach ($this->processors as $processor) {
  67.             if ($processor instanceof DebugLoggerInterface) {
  68.                 return $processor;
  69.             }
  70.         }
  71.         foreach ($this->handlers as $handler) {
  72.             if ($handler instanceof DebugLoggerInterface) {
  73.                 return $handler;
  74.             }
  75.         }
  76.         return null;
  77.     }
  78. }