Symfony 3 控制台异常日志仅显示在控制台上

问题描述 投票:0回答:1

在我们的 Symfony 3 应用程序中,所有来自控制台命令的日志记录(例如,当出现异常时)都被很好地格式化并显示在屏幕上......在生产模式下处理 cron 作业时完全没用。

来自 HTTP 请求的所有异常日志记录都通过服务器上的日志文件路由,并通过 Swifmail 发送给我们的报告(根据 https://symfony.com/doc/3.4/logging/monolog_email.html

我需要从控制台命令中获取与 HTTP 请求中的日志相同的日志,但 Symfony 文档似乎忽略了这种情况?

我们的配置:

monolog:
    handlers:
        main:
            type: fingers_crossed
            action_level: critical
            handler: grouped
        grouped:
            type: group
            members: [streamed, deduplicated]
        streamed:
            type: stream
            path: '%kernel.logs_dir%/%kernel.environment%.log'
            level: debug
        deduplicated:
            type: deduplication
            handler: swift
        swift:
            type: swift_mailer
            level: debug
            formatter: monolog.formatter.html
            content_type: text/html
        console:
            type: console
            process_psr_3_messages: false

symfony logging console-application symfony-3.4
1个回答
0
投票

Symfony 3 在 Monolog 的错误 (400) 级别记录控制台异常。

在我们的应用程序中,我们将

monolog.handlers.main.action_level
设置为临界值(500)。

解决这个问题的选项是

a) 补丁

Symfony\Component\Console\EventListener\ErrorListener
调用
$this->logger->addCritical
而不是
$this->logger->error

b) 将配置级别从严重降低到错误,并忍受获取所有 HTTP 4 的错误报告?也有错误。

© www.soinside.com 2019 - 2024. All rights reserved.