【问题标题】:How to read logs from Monolog in my application?如何在我的应用程序中从 Monolog 读取日志?
【发布时间】:2016-02-01 13:19:31
【问题描述】:

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

【问题讨论】:

    标签: symfony monolog


    【解决方案1】:

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

    而在您的用例中,日志是为最终用户设计的,实际上并不包含应用程序级别的信息,而是请求级别的信息。我会把它分开。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-29
      • 2012-11-29
      • 2016-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-01
      • 1970-01-01
      相关资源
      最近更新 更多