diff --git a/CHANGELOG.md b/CHANGELOG.md index 73f9d1a6..e55909c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ ### 1.24.0 (2018-11-05) + * BC Notice: If you are extending any of the Monolog's Formatters' `normalize` method, make sure you add the new `$depth = 0` argument to your function signature to avoid strict PHP warnings. * Added a `ResettableInterface` in order to reset/reset/clear/flush handlers and processors * Added a `ProcessorInterface` as an optional way to label a class as being a processor (mostly useful for autowiring dependency containers) * Added a way to log signals being received using Monolog\SignalHandler diff --git a/src/Monolog/Handler/TestHandler.php b/src/Monolog/Handler/TestHandler.php index b12e2818..4260f740 100644 --- a/src/Monolog/Handler/TestHandler.php +++ b/src/Monolog/Handler/TestHandler.php @@ -69,6 +69,7 @@ class TestHandler extends AbstractProcessingHandler { protected $records = []; protected $recordsByLevel = []; + private $skipReset = false; public function getRecords() { @@ -81,6 +82,18 @@ class TestHandler extends AbstractProcessingHandler $this->recordsByLevel = []; } + public function reset() + { + if (!$this->skipReset) { + $this->clear(); + } + } + + public function setSkipReset(bool $skipReset) + { + $this->skipReset = $skipReset; + } + /** * @param string|int $level Logging level value or name */ diff --git a/tests/Monolog/Handler/FingersCrossedHandlerTest.php b/tests/Monolog/Handler/FingersCrossedHandlerTest.php index ab22d345..b545489c 100644 --- a/tests/Monolog/Handler/FingersCrossedHandlerTest.php +++ b/tests/Monolog/Handler/FingersCrossedHandlerTest.php @@ -61,6 +61,7 @@ class FingersCrossedHandlerTest extends TestCase public function testHandleResetBufferingAfterReset() { $test = new TestHandler(); + $test->setSkipReset(true); $handler = new FingersCrossedHandler($test); $handler->handle($this->getRecord(Logger::WARNING)); $handler->handle($this->getRecord(Logger::DEBUG)); diff --git a/tests/Monolog/LoggerTest.php b/tests/Monolog/LoggerTest.php index 7d66df3d..7dce79ba 100644 --- a/tests/Monolog/LoggerTest.php +++ b/tests/Monolog/LoggerTest.php @@ -641,6 +641,7 @@ class LoggerTest extends \PHPUnit\Framework\TestCase $logger = new Logger('app'); $testHandler = new Handler\TestHandler(); + $testHandler->setSkipReset(true); $bufferHandler = new Handler\BufferHandler($testHandler); $groupHandler = new Handler\GroupHandler(array($bufferHandler)); $fingersCrossedHandler = new Handler\FingersCrossedHandler($groupHandler); @@ -670,7 +671,7 @@ class LoggerTest extends \PHPUnit\Framework\TestCase $that->assertEmpty($getProperty($fingersCrossedHandler, 'buffer')); }; - $logger->debug('debug'); + $logger->debug('debug1'); $logger->reset(); $assertBuffersEmpty(); $this->assertFalse($testHandler->hasDebugRecords()); @@ -678,16 +679,16 @@ class LoggerTest extends \PHPUnit\Framework\TestCase $this->assertNotSame($uid1, $uid1 = $processorUid1->getUid()); $this->assertNotSame($uid2, $uid2 = $processorUid2->getUid()); - $logger->debug('debug'); - $logger->error('error'); + $logger->debug('debug2'); + $logger->error('error2'); $logger->reset(); $assertBuffersEmpty(); - $this->assertTrue($testHandler->hasDebugRecords()); - $this->assertTrue($testHandler->hasErrorRecords()); + $this->assertTrue($testHandler->hasRecordThatContains('debug2', Logger::DEBUG)); + $this->assertTrue($testHandler->hasRecordThatContains('error2', Logger::ERROR)); $this->assertNotSame($uid1, $uid1 = $processorUid1->getUid()); $this->assertNotSame($uid2, $uid2 = $processorUid2->getUid()); - $logger->info('info'); + $logger->info('info3'); $this->assertNotEmpty($getProperty($fingersCrossedHandler, 'buffer')); $assertBufferOfBufferHandlerEmpty(); $this->assertFalse($testHandler->hasInfoRecords()); @@ -698,13 +699,13 @@ class LoggerTest extends \PHPUnit\Framework\TestCase $this->assertNotSame($uid1, $uid1 = $processorUid1->getUid()); $this->assertNotSame($uid2, $uid2 = $processorUid2->getUid()); - $logger->notice('notice'); - $logger->emergency('emergency'); + $logger->notice('notice4'); + $logger->emergency('emergency4'); $logger->reset(); $assertBuffersEmpty(); $this->assertFalse($testHandler->hasInfoRecords()); - $this->assertTrue($testHandler->hasNoticeRecords()); - $this->assertTrue($testHandler->hasEmergencyRecords()); + $this->assertTrue($testHandler->hasRecordThatContains('notice4', Logger::NOTICE)); + $this->assertTrue($testHandler->hasRecordThatContains('emergency4', Logger::EMERGENCY)); $this->assertNotSame($uid1, $processorUid1->getUid()); $this->assertNotSame($uid2, $processorUid2->getUid()); }