EVOLUTION-MANAGER
Edit File: BackoffLogger.php
<?php namespace DuplicatorPro\Guzzle\Plugin\Backoff; defined("ABSPATH") or die(""); use DuplicatorPro\Guzzle\Common\Event; use DuplicatorPro\Guzzle\Log\LogAdapterInterface; use DuplicatorPro\Guzzle\Log\MessageFormatter; use DuplicatorPro\Symfony\Component\EventDispatcher\EventSubscriberInterface; /** * Logs backoff retries triggered from the BackoffPlugin * * Format your log messages using a template that can contain template substitutions found in {@see MessageFormatter}. * In addition to the default template substitutions, there is also: * * - retries: The number of times the request has been retried * - delay: The amount of time the request is being delayed */ class BackoffLogger implements EventSubscriberInterface { /** @var string Default log message template */ const DEFAULT_FORMAT = '[{ts}] {method} {url} - {code} {phrase} - Retries: {retries}, Delay: {delay}, Time: {connect_time}, {total_time}, cURL: {curl_code} {curl_error}'; /** @var LogAdapterInterface Logger used to log retries */ protected $logger; /** @var MessageFormatter Formatter used to format log messages */ protected $formatter; /** * @param LogAdapterInterface $logger Logger used to log the retries * @param MessageFormatter $formatter Formatter used to format log messages */ public function __construct(LogAdapterInterface $logger, MessageFormatter $formatter = null) { $this->logger = $logger; $this->formatter = $formatter ?: new MessageFormatter(self::DEFAULT_FORMAT); } public static function getSubscribedEvents() { return array(BackoffPlugin::RETRY_EVENT => 'onRequestRetry'); } /** * Set the template to use for logging * * @param string $template Log message template * * @return self */ public function setTemplate($template) { $this->formatter->setTemplate($template); return $this; } /** * Called when a request is being retried * * @param Event $event Event emitted */ public function onRequestRetry(Event $event) { $this->logger->log($this->formatter->format( $event['request'], $event['response'], $event['handle'], array( 'retries' => $event['retries'], 'delay' => $event['delay'] ) )); } }