_logger = $logger; } /** * Add a log entry. * * @param string $entry */ public function add($entry) { $this->_logger->add($entry); } /** * Clear the log contents. */ public function clear() { $this->_logger->clear(); } /** * Get this log as a string. * * @return string */ public function dump() { return $this->_logger->dump(); } /** * Invoked immediately following a command being sent. * * @param Swift_Events_CommandEvent $evt */ public function commandSent(Swift_Events_CommandEvent $evt) { $command = $evt->getCommand(); $this->_logger->add(sprintf('>> %s', $command)); } /** * Invoked immediately following a response coming back. * * @param Swift_Events_ResponseEvent $evt */ public function responseReceived(Swift_Events_ResponseEvent $evt) { $response = $evt->getResponse(); $this->_logger->add(sprintf('<< %s', $response)); } /** * Invoked just before a Transport is started. * * @param Swift_Events_TransportChangeEvent $evt */ public function beforeTransportStarted(Swift_Events_TransportChangeEvent $evt) { $transportName = get_class($evt->getSource()); $this->_logger->add(sprintf('++ Starting %s', $transportName)); } /** * Invoked immediately after the Transport is started. * * @param Swift_Events_TransportChangeEvent $evt */ public function transportStarted(Swift_Events_TransportChangeEvent $evt) { $transportName = get_class($evt->getSource()); $this->_logger->add(sprintf('++ %s started', $transportName)); } /** * Invoked just before a Transport is stopped. * * @param Swift_Events_TransportChangeEvent $evt */ public function beforeTransportStopped(Swift_Events_TransportChangeEvent $evt) { $transportName = get_class($evt->getSource()); $this->_logger->add(sprintf('++ Stopping %s', $transportName)); } /** * Invoked immediately after the Transport is stopped. * * @param Swift_Events_TransportChangeEvent $evt */ public function transportStopped(Swift_Events_TransportChangeEvent $evt) { $transportName = get_class($evt->getSource()); $this->_logger->add(sprintf('++ %s stopped', $transportName)); } /** * Invoked as a TransportException is thrown in the Transport system. * * @param Swift_Events_TransportExceptionEvent $evt */ public function exceptionThrown(Swift_Events_TransportExceptionEvent $evt) { $e = $evt->getException(); $message = $e->getMessage(); $code = $e->getCode(); $this->_logger->add(sprintf('!! %s (code: %s)', $message, $code)); $message .= PHP_EOL; $message .= 'Log data:'.PHP_EOL; $message .= $this->_logger->dump(); $evt->cancelBubble(); throw new Swift_TransportException($message, $code, $e->getPrevious()); } }