Symfony 3 Журнал исключений консоли отображается только на консоли - PullRequest
0 голосов
/ 30 марта 2020

В нашем приложении 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 регистрирует исключения консоли на уровне error (400) Monolog, но у нас monolog.handlers.main.action_level установлено значение critical (500). Итак, похоже, что я могу либо пропатчить Symfony\Component\Console\EventListener\ErrorListener для вызова $this->logger->addCritical вместо $this->logger->error, либо снизить уровень конфигурации с critical до error и смириться с получением отчетов об ошибках для всех HTTP 4? ? ошибки тоже.

...