Я настроил свое приложение для отправки писем об исключениях следующим образом (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 было добавлено ведение журнала исключений, поэтому нет необходимости добавлять для него прослушиватель ошибок.Это должно работать на моей версии.На самом деле я вижу сообщения об исключениях в лог-файлах.Но нет электронной почты.Поэтому я решил добавить прослушиватель ошибок и зарегистрировать критическое сообщение (при условии, что оно должно вызывать основной обработчик монолога).Я так и сделал.И снова, я вижу свое критическое сообщение в лог-файле, но по-прежнему нет электронной почты.Так что я не так делаю?Я хочу получать сообщения об исключениях для консольных исключений.
Я пытаюсь заменить «дедуплицированный» обработчик на «быстрый», но это не помогло.