Monolog处理程序内部处理触发的原因是什么?

时间:2017-02-18 20:19:15

标签: php architecture monolog

大多数标准Monolog(https://github.com/Seldaek/monolog/tree/master/src/Monolog)处理程序在内部处理它们的触发,例如:

// https://github.com/Seldaek/monolog/blob/master/src/Monolog/Handler/PHPConsoleHandler.php#L76
public function __construct(array $options = [], Connector $connector = null, $level = Logger::DEBUG, $bubble = true)

处理程序已注册为

$logger->pushHandler(new PHPConsoleHandler(/* ... arguments */));

为什么不在注册处理程序时声明触发器级别,例如

$logger->pushHandler(new PHPConsoleHandler(), [Logger::DEBUG]);

1 个答案:

答案 0 :(得分:0)

  

注意:由于我不是Monolog的开发者,这只是猜测。

你所拥有的是一个命令,它被转换为"将项目X添加到处理程序数组"。当您在众多编程语言中查找不同的变体时,您会看到,当push()函数/方法具有多个元素时,它们都是添加到给定数组中的东西。请参阅phpjavascript中的示例定义。这是一个惯例。