From 08a20ee0ba2dd66b056f00d17fd915c63a80bf46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Pineau?= Date: Thu, 28 Feb 2019 18:06:35 +0100 Subject: [PATCH] [Monolog] Really reset logger when calling logger::reset() --- src/Symfony/Bridge/Monolog/Logger.php | 5 +++++ src/Symfony/Bridge/Monolog/Tests/LoggerTest.php | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/Symfony/Bridge/Monolog/Logger.php b/src/Symfony/Bridge/Monolog/Logger.php index de021426e0..fb668be62b 100644 --- a/src/Symfony/Bridge/Monolog/Logger.php +++ b/src/Symfony/Bridge/Monolog/Logger.php @@ -12,6 +12,7 @@ namespace Symfony\Bridge\Monolog; use Monolog\Logger as BaseLogger; +use Monolog\ResettableInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Log\DebugLoggerInterface; use Symfony\Contracts\Service\ResetInterface; @@ -73,6 +74,10 @@ class Logger extends BaseLogger implements DebugLoggerInterface, ResetInterface public function reset() { $this->clear(); + + if ($this instanceof ResettableInterface) { + parent::reset(); + } } /** diff --git a/src/Symfony/Bridge/Monolog/Tests/LoggerTest.php b/src/Symfony/Bridge/Monolog/Tests/LoggerTest.php index 2ee7bc7d93..143200f6c5 100644 --- a/src/Symfony/Bridge/Monolog/Tests/LoggerTest.php +++ b/src/Symfony/Bridge/Monolog/Tests/LoggerTest.php @@ -12,6 +12,7 @@ namespace Symfony\Bridge\Monolog\Tests; use Monolog\Handler\TestHandler; +use Monolog\ResettableInterface; use PHPUnit\Framework\TestCase; use Symfony\Bridge\Monolog\Logger; use Symfony\Bridge\Monolog\Processor\DebugProcessor; @@ -108,6 +109,22 @@ class LoggerTest extends TestCase $this->assertSame(0, $logger->countErrors()); } + public function testReset() + { + $handler = new TestHandler(); + $logger = new Logger('test', [$handler]); + $logger->pushProcessor(new DebugProcessor()); + + $logger->info('test'); + $logger->reset(); + + $this->assertEmpty($logger->getLogs()); + $this->assertSame(0, $logger->countErrors()); + if (class_exists(ResettableInterface::class)) { + $this->assertEmpty($handler->getRecords()); + } + } + /** * @group legacy * @expectedDeprecation The "Symfony\Bridge\Monolog\Logger::getLogs()" method will have a new "Request $request = null" argument in version 5.0, not defining it is deprecated since Symfony 4.2.