我的Symfony应用程序根据用户的请求运行计算。我想给他们发一封电子邮件作为回复。
我在config.yml
中创建了一个自定义渠道和处理程序:
# config.yml
# ...
monolog:
handlers:
buildbot:
level: info
type: stream
channels: [buildbot]
现在我从各种服务中写入日志:
<?php
// AppBundle/Services/BuildBot.php
$this->buildLogger->info('Fabricating robot shell');
在服务中,我想通过“buildbot”Monolog频道的日志行向请求者发送电子邮件。如何阅读日志行?
答案 0 :(得分:2)
从设计角度来看,我不认为Symfony的记录器是用于此任务的正确工具。在我看来,记录器旨在记录有关您的应用程序活动的信息,这些信息可能对您或作为开发人员(或其他类型的管理员)有用。
在您的用例中,日志适用于最终用户,并不真正包含应用程序级信息,而是包含请求级信息。我会将其分开。
我个人的方法是创建一个接受这些消息的简单服务(甚至可能实现记录器接口),订阅kernel.terminate
事件并最终将组合消息发送给用户。
无论如何,如果你真的想用Monolog做这件事,你应该调查它的处理程序。 Here是可用处理程序的列表,而here和here是有关如何配置它们的特定于Symfony的示例。您可能必须编写自己的邮件处理程序,因为打包的邮件处理程序假定存在静态收件人,而您可能希望将邮件发送给当前用户。