/** * Actually do the logging. * * @param EventInterface $event */ public function log(EventInterface $event) { $params = $event->getParams(); $method = '?'; $exception = isset($params['exception']) ? $params['exception'] : ''; $sql = isset($params['sql']) ? $params['sql'] : array(); $this->logger->critical(get_class($event->getTarget()) . "::{$method} - {$exception}", $sql); }
private function send($recipients, $subject, $body) { $channel = false; $connection = false; try { $connection = $this->queueFactory->createConnection(); $channel = $connection->channel(); $channel->queue_declare('mail_queue', false, true, false, false); foreach ($recipients as $recipient) { $message = new Mail(); $message->name = $recipient->name; $message->email = $recipient->address; $message->subject = $subject; $message->body = $body; $msg = new AMQPMessage($message->serialize(), ['delivery_mode' => 2]); $channel->basic_publish($msg, '', 'mail_queue'); } } catch (\Exception $e) { while ($e) { $this->logger->critical(get_class($this) . ":send says: {$e->getMessage()}", $e->getTrace()); $e = $e->getPrevious(); } } finally { if (isset($channel) && $channel) { $channel->close(); } if (isset($connection) && $connection) { $connection->close(); } } }