Skip to content

Commit 203cfc4

Browse files
committed
bug #30410 [Monolog] Really reset logger when calling logger::reset() (lyrixx)
This PR was merged into the 4.2 branch. Discussion ---------- [Monolog] Really reset logger when calling logger::reset() | Q | A | ------------- | --- | Branch? | 4.2 | Bug fix? | yes | New feature? | no | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | | License | MIT | Doc PR | Commits ------- 08a20ee [Monolog] Really reset logger when calling logger::reset()
2 parents ed78e71 + 08a20ee commit 203cfc4

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

src/Symfony/Bridge/Monolog/Logger.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace Symfony\Bridge\Monolog;
1313

1414
use Monolog\Logger as BaseLogger;
15+
use Monolog\ResettableInterface;
1516
use Symfony\Component\HttpFoundation\Request;
1617
use Symfony\Component\HttpKernel\Log\DebugLoggerInterface;
1718
use Symfony\Contracts\Service\ResetInterface;
@@ -73,6 +74,10 @@ public function clear()
7374
public function reset()
7475
{
7576
$this->clear();
77+
78+
if ($this instanceof ResettableInterface) {
79+
parent::reset();
80+
}
7681
}
7782

7883
/**

src/Symfony/Bridge/Monolog/Tests/LoggerTest.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
namespace Symfony\Bridge\Monolog\Tests;
1313

1414
use Monolog\Handler\TestHandler;
15+
use Monolog\ResettableInterface;
1516
use PHPUnit\Framework\TestCase;
1617
use Symfony\Bridge\Monolog\Logger;
1718
use Symfony\Bridge\Monolog\Processor\DebugProcessor;
@@ -108,6 +109,22 @@ public function testClear()
108109
$this->assertSame(0, $logger->countErrors());
109110
}
110111

112+
public function testReset()
113+
{
114+
$handler = new TestHandler();
115+
$logger = new Logger('test', [$handler]);
116+
$logger->pushProcessor(new DebugProcessor());
117+
118+
$logger->info('test');
119+
$logger->reset();
120+
121+
$this->assertEmpty($logger->getLogs());
122+
$this->assertSame(0, $logger->countErrors());
123+
if (class_exists(ResettableInterface::class)) {
124+
$this->assertEmpty($handler->getRecords());
125+
}
126+
}
127+
111128
/**
112129
* @group legacy
113130
* @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.

0 commit comments

Comments
 (0)