mirror of
https://github.com/Seldaek/monolog.git
synced 2025-08-10 15:14:14 +02:00
Added Logger::setHandlers()
Logger::setHandlers() is intended to help dependency injection systems that deal more elegantly with property setters than constructor arguments. Alongside getHandlers(), pushHandler(), popHandler(), it is a logical addition to the API. It also attempts to address some possible errors in the format of the data passed: - If a map is passed, the keys are removed, as these aren’t expected by Monolog - If falsey values are included, these are stripped It relies on Logger::pushHandler() internally, so that if any special behaviour is added in the future, this only needs to be added in one place.
This commit is contained in:
@@ -139,6 +139,30 @@ class LoggerTest extends \PHPUnit_Framework_TestCase
|
||||
$logger->popHandler();
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Monolog\Logger::setHandlers
|
||||
*/
|
||||
public function testSetHandlers()
|
||||
{
|
||||
$logger = new Logger(__METHOD__);
|
||||
$handler1 = new TestHandler;
|
||||
$handler2 = new TestHandler;
|
||||
|
||||
$logger->pushHandler($handler1);
|
||||
$logger->setHandlers(array($handler2));
|
||||
|
||||
// handler1 has been removed
|
||||
$this->assertEquals(array($handler2), $logger->getHandlers());
|
||||
|
||||
$logger->setHandlers(array(
|
||||
"AMapKey" => $handler1,
|
||||
"Falsey" => null,
|
||||
));
|
||||
|
||||
// Keys have been scrubbed
|
||||
$this->assertEquals(array($handler1), $logger->getHandlers());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Monolog\Logger::pushProcessor
|
||||
* @covers Monolog\Logger::popProcessor
|
||||
|
Reference in New Issue
Block a user