【问题标题】:Symfony3 Monolog Settings for email and file logging用于电子邮件和文件记录的 Symfony3 Monolog 设置
【发布时间】:2018-11-20 19:53:02
【问题描述】:

我从事两个基于 symfony2.x 和 symfony 3.x 的不同项目。 我想将这两个项目设置为向我发送严重错误的电子邮件,但只记录错误级别的错误。

以下设置适用于 symfony 2.8,但不适用于 symfony3。

monolog:
handlers:
    main_critical:
        type:         fingers_crossed
        action_level: error
        excluded_404:
            - ^/
        handler:      grouped_critical
    grouped_critical:
        type:    group
        members: [streamed_critical, buffered_critical]
    streamed_critical:
        type:  stream
        path:  "%kernel.logs_dir%/%kernel.environment%_critical.log"
        level: critical
    buffered_critical:
        type:    buffer
        handler: swift_critical
    swift_critical:
        type:       swift_mailer
        from_email: "%error_mail_sender%"
        to_email:   "%critical_error_mail_recipients%"
        subject:    Critical error occurred!
        level:      critical
    main_error:
        type:         fingers_crossed
        action_level: error
        handler:      grouped_error
    grouped_error:
        type:    group
        members: [streamed_error]
    streamed_error:
        type:  stream
        path:  "%log_file_path%"
        level: error

错误是:

致命错误:未捕获的错误:已达到“256”的最大函数嵌套级别,正在中止!在第 7 行的 /var/www/statistic/vendor/symfony/symfony/src/Symfony/Component/Debug/Exception/FatalErrorException.php 中

我不确定这个设置有什么问题,因为它适用于 symfony 2.8 但不适用于 3.x。

但是当我删除下面的这个块时,它就可以在 symfony 3 项目上运行。但它只会通过电子邮件记录严重错误,而无需进行以下设置。

main_error:
    type:         fingers_crossed
    action_level: error
    handler:      grouped_error
grouped_error:
    type:    group
    members: [streamed_error]
streamed_error:
    type:  stream
    path:  "%log_file_path%"
    level: error

有什么想法吗?

【问题讨论】:

  • 出于一般目的,您应该配置单独的devprod 环境调试设置。 dev 设置应该使用 XDebug 和其他调试实用程序,例如 PHPUnit。 prod 环境不应启用 XDebug 或包含 PHPUnit,因为它们是生产环境中不需要的额外开销。见Will enabling XDebug on a production server make PHP slower?

标签: symfony symfony-3.3 symfony-2.8 php-7.1 monolog


【解决方案1】:

我认为是xdebug的问题,请尝试在你的php.ini或你的php配置文件中添加这个:

xdebug.max_nesting_level = 1000

【讨论】:

    猜你喜欢
    • 2012-05-02
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 2015-04-28
    • 1970-01-01
    • 2016-11-03
    • 2015-05-16
    • 2014-11-26
    相关资源
    最近更新 更多