mirror of
https://github.com/Seldaek/monolog.git
synced 2025-08-03 19:57:41 +02:00
Merge remote-tracking branch 'sminnee/logger-sethandlers'
This commit is contained in:
@@ -175,6 +175,25 @@ class Logger implements LoggerInterface
|
|||||||
return array_shift($this->handlers);
|
return array_shift($this->handlers);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set handlers, removing all existing ones.
|
||||||
|
* Falsey values will be ignored, and if a map is passed, keys will be ignored.
|
||||||
|
*
|
||||||
|
* @param array $handlers All elements must be of type HandlerInterface
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function setHandlers(array $handlers)
|
||||||
|
{
|
||||||
|
$this->handlers = array();
|
||||||
|
foreach ($handlers as $handler) {
|
||||||
|
if ($handler) {
|
||||||
|
$this->pushHandler($handler);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return HandlerInterface[]
|
* @return HandlerInterface[]
|
||||||
*/
|
*/
|
||||||
|
@@ -139,6 +139,30 @@ class LoggerTest extends \PHPUnit_Framework_TestCase
|
|||||||
$logger->popHandler();
|
$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::pushProcessor
|
||||||
* @covers Monolog\Logger::popProcessor
|
* @covers Monolog\Logger::popProcessor
|
||||||
|
Reference in New Issue
Block a user