mirror of
https://github.com/Seldaek/monolog.git
synced 2025-10-21 16:46:11 +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:
@@ -175,6 +175,25 @@ class Logger implements LoggerInterface
|
||||
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[]
|
||||
*/
|
||||
|
Reference in New Issue
Block a user