如何在我的应用程序中读取Monolog的日志?

时间:2015-11-01 16:25:31

标签: symfony monolog

我的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频道的日志行向请求者发送电子邮件。如何阅读日志行?

1 个答案:

答案 0 :(得分:2)

从设计角度来看,我不认为Symfony的记录器是用于此任务的正确工具。在我看来,记录器旨在记录有关您的应用程序活动的信息,这些信息可能对您或作为开发人员(或其他类型的管理员)有用。

在您的用例中,日志适用于最终用户,并不真正包含应用程序级信息,而是包含请求级信息。我会将其分开。

我个人的方法是创建一个接受这些消息的简单服务(甚至可能实现记录器接口),订阅kernel.terminate事件并最终将组合消息发送给用户。

无论如何,如果你真的想用Monolog做这件事,你应该调查它的处理程序。 Here是可用处理程序的列表,而herehere是有关如何配置它们的特定于Symfony的示例。您可能必须编写自己的邮件处理程序,因为打包的邮件处理程序假定存在静态收件人,而您可能希望将邮件发送给当前用户。