【发布时间】:2015-02-27 14:34:59
【问题描述】:
大家好,
在我的项目中,有时我需要发送电子邮件和记录消息。问题是我没有使用 swift mailer,我使用的是一个为我发送电子邮件的 API。
我尝试过的解决方案是创建了一个自定义处理器,并在其中注入了我的客户端邮件程序。我关注了http://symfony.com/doc/current/cookbook/logging/monolog.html#adding-a-session-request-token。
所以我有如下内容:
namespace Tools\LoggerBundle;
use Symfony\Component\HttpFoundation\Session\Session;
class CustomProcessor
{
private $session;
private $token;
// Client Mailer
private $mailer;
public function __construct(Session $session, $mailer)
{
$this->session = $session;
$this->mailer = $mailer;
}
public function processRecord(array $record)
{
if (null === $this->token) {
try {
$this->token = substr($this->session->getId(), 0, 8);
} catch (\RuntimeException $e) {
$this->token = '????????';
}
$this->token .= '-' . substr(uniqid(), -8);
}
$record['extra']['token'] = $this->token;
// Sends an email
$this->mailer->send('Alert', print_r($record, true));
return $record;
}
}
这很好用,除了我只需要在级别大于警告时发送电子邮件。同时,正常的日志记录不应该停止。
你有什么建议?
【问题讨论】:
-
唯一的区别是我没有像你给的帖子那样使用 swift_mailer。我应该考虑使用自定义处理程序...
标签: php symfony logging monolog