首页 > 解决方案 > 如何在 symfony 中通过电子邮件发送控制台错误

问题描述

我已将我的应用程序配置为以这种方式发送异常电子邮件(prod/monolog.yaml):

monolog:
    handlers:
        main:
            type: fingers_crossed
            action_level: error
            handler: grouped
            excluded_404s:
                # regex: exclude all 404 errors from the logs
                - ^/
        grouped:
            type: group
            members: [nested, deduplicated]
        deduplicated:
            type: deduplication
            handler: swift
        swift:
            type: swift_mailer
            from_email: '%admin_notifier_from%'
            to_email: '%admin_notifier_to%'
            subject: 'Error'
            level: debug
            formatter: monolog.formatter.html
            content_type: text/html
        nested:
            type: stream
            path: "%kernel.logs_dir%/%kernel.environment%.log"
            level: debug
        console:
            type:   console
            process_psr_3_messages: false
            channels: ["!event", "!doctrine"]

它有效。当我在某个控制器中抛出异常时,打开该控制器的 url 我会收到一封包含异常的电子邮件。所以电子邮件在 http 级别上工作。但是它不在控制台级别。我正在使用 SF v4.2。我发现在最近的 symfony 版本中添加了控制台异常日志记录,因此无需为其添加错误控制台侦听器。它应该适用于我的版本。实际上我在日志文件中看到异常消息。但没有电子邮件。所以我决定添加一个错误监听器并记录关键消息(假设它应该触发主独白处理程序)。所以我做到了。再一次,我在日志文件中看到了我的关键消息,但仍然没有电子邮件。那我做错了什么?我想收到有关控制台异常的异常电子邮件。

我试图用“swift”替换“deduplicated”处理程序,但它没有帮助。

标签: symfonysymfony4

解决方案


推荐阅读