【问题标题】:Custom monolog handler for default monolog in Symfony 2Symfony 2 中默认独白的自定义独白处理程序
【发布时间】:2012-10-07 19:25:01
【问题描述】:

我想在Symfony 2 的默认独白中添加自定义处理程序。

在我的config.yaml 文件中,我有:

monolog:
    handlers:
        main:
            type:  stream
            path:  %kernel.logs_dir%/%kernel.environment%.log
            level: debug
        myHandler:
            type:  Acme\MyBundle\Monolog\MyCustomHandler
            level: error

我的班级如下所示:

// Acme\MyBundle\Monolog\MyCustomHandler
use Monolog\Logger;
use Monolog\Handler\SocketHandler;
use Monolog\Formatter\LineFormatter;

class MyCustomHandler extends AbstractProcessingHandler
{
    ...
}

但即使在我填写课程之前,我也会收到一个错误:

为处理程序“myHandler”提供的处理程序类型“acme\mybundle\monolog\mycustomhandler”无效

如何在不创建新的独白服务的情况下向默认独白添加自定义处理程序?

【问题讨论】:

  • 为什么不想创建服务?
  • 这只是一个关于这个非常古老且有用的问题的示例,供未来读者参考:完整工作示例在这里:inanzzz.com/index.php/post/53en/…

标签: php symfony monolog


【解决方案1】:

试试这个:

monolog:
    handlers:
        main:
            type:  stream
            path:  %kernel.logs_dir%/%kernel.environment%.log
            level: debug
        custom:
            type: service
            id: my_custom_handler

services:
    my_custom_handler:
        class: Acme\MyBundle\Monolog\MyCustomHandler

如果你想将它用作默认处理程序,那么你应该更改我上面写的一些独白部分。

monolog:
    handlers:
        main:
            type:  stream
            path:  %kernel.logs_dir%/%kernel.environment%.log
            level: debug
            handler: custom
        custom:
            type: service
            id: my_custom_handler

希望对你有帮助。

【讨论】:

  • 好答案!非常有帮助。谢谢!
【解决方案2】:

我刚刚发现Monolog 附带了一组不同的处理程序,因此您可能想使用其中一个而不是自己编写。我使用LogEntriesHandler 登录logentries.com,但这里记录的还有更多:https://github.com/Seldaek/monolog#log-specific-servers-and-networked-logging

我的 Symfony2 配置如下所示:

monolog:
    main:
        type:  fingers_crossed
        level: debug
        handler: nested
    custom:
        type: service
        id: monolog.handler.logentries
        level: error

services:
    monolog.handler.logentries:
        class: Monolog\Handler\LogEntriesHandler
        arguments:
            token: %logentries_token%

【讨论】:

    猜你喜欢
    • 2019-03-19
    • 2015-01-22
    • 2018-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 2018-04-09
    • 1970-01-01
    相关资源
    最近更新 更多