仅执行一个Monolog处理程序

时间:2018-08-20 02:35:59

标签: php logging monolog

我的应用程序有两个日志处理程序-errorinfo

monolog:
    handlers:
        error:
            type: fingers_crossed
            action_level: error
            handler: my_log
        info:
            type:  stream
            action_level: info
            handler: my_log
        my_log:
            type:  stream
            path:  "%kernel.logs_dir%/foo.log"

如果记录的错误级别为错误或更高,则仅执行error处理程序。但是,如果出现级别为 info 的消息,则同时执行errorinfo处理程序。

documentation指出:

  

每个处理程序都决定是否完全处理记录,如果是,   记录的传播到此结束。

如何告诉Monolog我的info处理程序已完全处理了该错误?当我在文档中找到$bubble属性时,我以为自己正在做某事:

  

处理程序还具有$ bubble属性,该属性定义如果处理记录,则是否阻塞记录。在此示例中,将MailHandler的$ bubble参数设置为false意味着由MailHandler处理的记录将不再传播到StreamHandler。

但是,在我的error处理程序上进行设置似乎会阻止info完全执行。

总而言之,如果info处理程序已经执行,如何停止执行error处理程序?

0 个答案:

没有答案