【问题标题】:How to use php monolog如何使用php独白
【发布时间】:2014-11-05 14:58:43
【问题描述】:

我听说过很多关于 monolog(https://github.com/Seldaek/monolog) 并试图在我们的一个应用程序中使用它。但是,想不出来。出如何使用它。不知道是我无法获得它的任何文档,或者它根本没有文档。

我们希望在 DB 中记录所有错误,并在错误生成时发送有关错误的电子邮件通知。对于发送电子邮件,我们使用 Swiftmailer(swiftmailer.org)。

我可以从 Github 链接运行这个示例代码,

<?php
use Monolog\Logger;
use Monolog\Handler\StreamHandler;

// create a log channel
$log = new Logger('name');
$log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));

// add records to the log
$log->addWarning('Foo');
$log->addError('Bar');

但无法理解如何将其与 DB 和任何其他电子邮件库一起使用。

【问题讨论】:

  • 你必须使用 Monolog 的不同处理程序。它已经为 Swiftmailer、MongoDB 和 CouchDB 提供了处理程序。我不确定,但我想你必须自己为 RDBMS 创建一个。
  • @SenseException :是的!这是我知道的。但是,我想不通。了解如何使用这些处理程序。根本没有例子。

标签: php swiftmailer monolog


【解决方案1】:

您自己发布了一个示例。使用 monolog 提供的一个或多个其他处理程序,而不是 StreamHandler。

您必须查看处理程序的代码以了解它们需要哪些依赖项。查看 Monolog 目录,您会发现 Handler 类。代码是最可靠的文档。

<?php

use Monolog\Logger;
use Monolog\Handler\SwiftMailerHandler;

use Swift_Mailer;
// ... more dependencies you need

// create your Swift_Mailer and Swift_Message instances

$handlers = [
    new SwiftMailerHandler($swiftMailer, $swiftMessage),
    // add more handler you need
];

$log = new Logger('name', $handlers);


$log->warning('Foo');
$log->error('Bar');

您必须为 SwiftMailerHandler 创建一个 Swift_Mailer 和 Swift_Message 实例。您可以将处理程序数组添加到 Logger 构造函数中,而不是 pushHandler。

Swift_Message 实例用于每条日志消息,每次邮件正文都会替换该消息。

我只能建议您阅读独白代码以获取缺少进一步文档的信息。

【讨论】:

  • 昨天,经过两天的折腾,我终于知道如何使用独白了。我已经构建了 Swiftmailer 以及如何记录 PDO 错误数据库表。现在,我想我已经掌握了一些。无论如何,感谢您的帮助和支持。我真的很感激。
猜你喜欢
  • 2014-11-05
  • 1970-01-01
  • 1970-01-01
  • 2019-09-22
  • 1970-01-01
  • 2021-08-19
  • 2014-12-28
  • 2019-07-12
  • 2014-07-23
相关资源
最近更新 更多