1
0
mirror of https://github.com/Seldaek/monolog.git synced 2025-08-06 05:07:36 +02:00

Extract fingerscrossed activation into its own method callable from outside

This commit is contained in:
Nils Adermann
2016-04-15 14:05:55 -04:00
parent e0b521ba53
commit abb58081fe

View File

@@ -36,7 +36,6 @@ class FingersCrossedHandler extends AbstractHandler
protected $buffer = array();
protected $stopBuffering;
protected $passthruLevel;
protected $overrideActivated = false;
/**
* @param callable|HandlerInterface $handler Handler or factory callable($record, $fingersCrossedHandler).
@@ -85,7 +84,22 @@ class FingersCrossedHandler extends AbstractHandler
*/
public function activate()
{
$this->overrideActivated = true;
if ($this->stopBuffering) {
$this->buffering = false;
}
if (!$this->handler instanceof HandlerInterface) {
$record = end($this->buffer);
if ($record === false) {
$record = null;
}
$this->handler = call_user_func($this->handler, $record, $this);
if (!$this->handler instanceof HandlerInterface) {
throw new \RuntimeException("The factory callable should return a HandlerInterface");
}
}
$this->handler->handleBatch($this->buffer);
$this->buffer = array();
}
/**
@@ -104,18 +118,8 @@ class FingersCrossedHandler extends AbstractHandler
if ($this->bufferSize > 0 && count($this->buffer) > $this->bufferSize) {
array_shift($this->buffer);
}
if ($this->overrideActivated || $this->activationStrategy->isHandlerActivated($record)) {
if ($this->stopBuffering) {
$this->buffering = false;
}
if (!$this->handler instanceof HandlerInterface) {
$this->handler = call_user_func($this->handler, $record, $this);
if (!$this->handler instanceof HandlerInterface) {
throw new \RuntimeException("The factory callable should return a HandlerInterface");
}
}
$this->handler->handleBatch($this->buffer);
$this->buffer = array();
if ($this->activationStrategy->isHandlerActivated($record)) {
$this->activate($record);
}
} else {
$this->handler->handle($record);