В нашем приложении 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? ? ошибки тоже.