123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- <?php
-
- /*
- * This file is part of SwiftMailer.
- * (c) 2004-2009 Chris Corbyn
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-
- /**
- * Does real time logging of Transport level information.
- *
- * @package Swift
- * @subpackage Plugins
- *
- * @author Chris Corbyn
- */
- class Swift_Plugins_LoggerPlugin
- implements Swift_Events_CommandListener, Swift_Events_ResponseListener,
- Swift_Events_TransportChangeListener, Swift_Events_TransportExceptionListener,
- Swift_Plugins_Logger
- {
-
- /** The logger which is delegated to */
- private $_logger;
-
- /**
- * Create a new LoggerPlugin using $logger.
- *
- * @param Swift_Plugins_Logger $logger
- */
- public function __construct(Swift_Plugins_Logger $logger)
- {
- $this->_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_ResponseEvent $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();
- $this->_logger->add(sprintf("!! %s", $message));
- $message .= PHP_EOL;
- $message .= 'Log data:' . PHP_EOL;
- $message .= $this->_logger->dump();
- $evt->cancelBubble();
- throw new Swift_TransportException($message);
- }
-
- }
|