/vendor/monolog/monolog/src/Monolog/Handler/AbstractHandler.php |
@@ -0,0 +1,186 @@ |
<?php |
|
/* |
* This file is part of the Monolog package. |
* |
* (c) Jordi Boggiano <j.boggiano@seld.be> |
* |
* For the full copyright and license information, please view the LICENSE |
* file that was distributed with this source code. |
*/ |
|
namespace Monolog\Handler; |
|
use Monolog\Logger; |
use Monolog\Formatter\FormatterInterface; |
use Monolog\Formatter\LineFormatter; |
|
/** |
* Base Handler class providing the Handler structure |
* |
* @author Jordi Boggiano <j.boggiano@seld.be> |
*/ |
abstract class AbstractHandler implements HandlerInterface |
{ |
protected $level = Logger::DEBUG; |
protected $bubble = true; |
|
/** |
* @var FormatterInterface |
*/ |
protected $formatter; |
protected $processors = array(); |
|
/** |
* @param int $level The minimum logging level at which this handler will be triggered |
* @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not |
*/ |
public function __construct($level = Logger::DEBUG, $bubble = true) |
{ |
$this->setLevel($level); |
$this->bubble = $bubble; |
} |
|
/** |
* {@inheritdoc} |
*/ |
public function isHandling(array $record) |
{ |
return $record['level'] >= $this->level; |
} |
|
/** |
* {@inheritdoc} |
*/ |
public function handleBatch(array $records) |
{ |
foreach ($records as $record) { |
$this->handle($record); |
} |
} |
|
/** |
* Closes the handler. |
* |
* This will be called automatically when the object is destroyed |
*/ |
public function close() |
{ |
} |
|
/** |
* {@inheritdoc} |
*/ |
public function pushProcessor($callback) |
{ |
if (!is_callable($callback)) { |
throw new \InvalidArgumentException('Processors must be valid callables (callback or object with an __invoke method), '.var_export($callback, true).' given'); |
} |
array_unshift($this->processors, $callback); |
|
return $this; |
} |
|
/** |
* {@inheritdoc} |
*/ |
public function popProcessor() |
{ |
if (!$this->processors) { |
throw new \LogicException('You tried to pop from an empty processor stack.'); |
} |
|
return array_shift($this->processors); |
} |
|
/** |
* {@inheritdoc} |
*/ |
public function setFormatter(FormatterInterface $formatter) |
{ |
$this->formatter = $formatter; |
|
return $this; |
} |
|
/** |
* {@inheritdoc} |
*/ |
public function getFormatter() |
{ |
if (!$this->formatter) { |
$this->formatter = $this->getDefaultFormatter(); |
} |
|
return $this->formatter; |
} |
|
/** |
* Sets minimum logging level at which this handler will be triggered. |
* |
* @param int|string $level Level or level name |
* @return self |
*/ |
public function setLevel($level) |
{ |
$this->level = Logger::toMonologLevel($level); |
|
return $this; |
} |
|
/** |
* Gets minimum logging level at which this handler will be triggered. |
* |
* @return int |
*/ |
public function getLevel() |
{ |
return $this->level; |
} |
|
/** |
* Sets the bubbling behavior. |
* |
* @param Boolean $bubble true means that this handler allows bubbling. |
* false means that bubbling is not permitted. |
* @return self |
*/ |
public function setBubble($bubble) |
{ |
$this->bubble = $bubble; |
|
return $this; |
} |
|
/** |
* Gets the bubbling behavior. |
* |
* @return Boolean true means that this handler allows bubbling. |
* false means that bubbling is not permitted. |
*/ |
public function getBubble() |
{ |
return $this->bubble; |
} |
|
public function __destruct() |
{ |
try { |
$this->close(); |
} catch (\Exception $e) { |
// do nothing |
} catch (\Throwable $e) { |
// do nothing |
} |
} |
|
/** |
* Gets the default formatter. |
* |
* @return FormatterInterface |
*/ |
protected function getDefaultFormatter() |
{ |
return new LineFormatter(); |
} |
} |