如何使用 Symfony 5.1、Monolog 和 Mailer 组件通过电子邮件配置发送错误?
How to configure sending errors by e-mail with Symfony 5.1, Monolog and Mailer component?
您是否有使用 Symfony 5.1 的 Mailer 组件通过电子邮件发送日志的示例配置。
我们在 Symfony 博客中宣布了此功能,但我无法将正确的配置放入 monolog.yaml
https://symfony.com/blog/new-in-symfony-5-1-misc-improvements-part-3 :
这就是为什么在 Symfony 5.1 中我们添加了一个新的 Monolog 日志处理程序,它使用 Mailer 组件通过电子邮件发送日志。
不幸的是,此添加仅涵盖 monolog-bridge
中的实际 MailerHandler
class。这不包括在 monolog-bundle
中配置它的可能性(如果这些组件分布在多个包中,这就是缺点)。
monolog-bundle
中更改的 PR 仍然开放,可以在这里找到:Add Symfony Mailer support #354。
如果您不想等待 monolog-bundle 中的更改,您已经可以通过将处理程序定义为服务来使用它,然后在 monolog 配置中将其与 service
类型一起使用。
所以定义你的服务:
services:
# this configures the "mail" as a prototype, so you can
# define the sender and recipient mail addresses here
symfony_mailer_service_template:
class: Symfony\Component\Mime\Email
calls:
- ['from', ['webapp@example.com']]
- ['to', ['ops@example.com']]
- ['subject', ['Logs']]
symfony_mailer_service:
class: Symfony\Bridge\Monolog\Handler\MailerHandler
arguments:
- '@mailer.mailer'
- '@symfony_mailer_service_template'
- !php/const Monolog\Logger::DEBUG # log level
- true # bubble
然后在您的邮件程序配置中,您可以像这样使用它:
monolog:
handlers:
main:
type: fingers_crossed
handler: deduplicated
deduplicated:
type: deduplication
handler: symfony_mailer
symfony_mailer:
type: service
id: symfony_mailer_service
您是否有使用 Symfony 5.1 的 Mailer 组件通过电子邮件发送日志的示例配置。
我们在 Symfony 博客中宣布了此功能,但我无法将正确的配置放入 monolog.yaml
https://symfony.com/blog/new-in-symfony-5-1-misc-improvements-part-3 : 这就是为什么在 Symfony 5.1 中我们添加了一个新的 Monolog 日志处理程序,它使用 Mailer 组件通过电子邮件发送日志。
不幸的是,此添加仅涵盖 monolog-bridge
中的实际 MailerHandler
class。这不包括在 monolog-bundle
中配置它的可能性(如果这些组件分布在多个包中,这就是缺点)。
monolog-bundle
中更改的 PR 仍然开放,可以在这里找到:Add Symfony Mailer support #354。
如果您不想等待 monolog-bundle 中的更改,您已经可以通过将处理程序定义为服务来使用它,然后在 monolog 配置中将其与 service
类型一起使用。
所以定义你的服务:
services:
# this configures the "mail" as a prototype, so you can
# define the sender and recipient mail addresses here
symfony_mailer_service_template:
class: Symfony\Component\Mime\Email
calls:
- ['from', ['webapp@example.com']]
- ['to', ['ops@example.com']]
- ['subject', ['Logs']]
symfony_mailer_service:
class: Symfony\Bridge\Monolog\Handler\MailerHandler
arguments:
- '@mailer.mailer'
- '@symfony_mailer_service_template'
- !php/const Monolog\Logger::DEBUG # log level
- true # bubble
然后在您的邮件程序配置中,您可以像这样使用它:
monolog:
handlers:
main:
type: fingers_crossed
handler: deduplicated
deduplicated:
type: deduplication
handler: symfony_mailer
symfony_mailer:
type: service
id: symfony_mailer_service