我已将我的应用配置为以这种方式发送电子邮件(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版本中添加了控制台异常日志记录,因此无需为其添加错误控制台侦听器。它应该适用于我的版本。实际上,我在日志文件中看到异常消息。但是没有电子邮件。因此,我决定添加一个错误侦听器并记录关键消息(假设它应该触发主monolog处理程序)。所以我做到了。再一次,我在日志文件中看到了我的关键消息,但仍然没有电子邮件。那我在做什么错?我想收到有关控制台异常的异常电子邮件。
我倾向于将“去重复的”处理程序替换为“快速”处理程序,但这没有帮助。