summaryrefslogtreecommitdiff
path: root/vendor/guzzle/guzzle/src/Guzzle/Log
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/guzzle/guzzle/src/Guzzle/Log')
-rw-r--r--vendor/guzzle/guzzle/src/Guzzle/Log/AbstractLogAdapter.php16
-rw-r--r--vendor/guzzle/guzzle/src/Guzzle/Log/ArrayLogAdapter.php34
-rw-r--r--vendor/guzzle/guzzle/src/Guzzle/Log/ClosureLogAdapter.php23
-rw-r--r--vendor/guzzle/guzzle/src/Guzzle/Log/LogAdapterInterface.php18
-rw-r--r--vendor/guzzle/guzzle/src/Guzzle/Log/MessageFormatter.php179
-rw-r--r--vendor/guzzle/guzzle/src/Guzzle/Log/MonologLogAdapter.php34
-rw-r--r--vendor/guzzle/guzzle/src/Guzzle/Log/PsrLogAdapter.php36
-rw-r--r--vendor/guzzle/guzzle/src/Guzzle/Log/Zf1LogAdapter.php24
-rw-r--r--vendor/guzzle/guzzle/src/Guzzle/Log/Zf2LogAdapter.php21
-rw-r--r--vendor/guzzle/guzzle/src/Guzzle/Log/composer.json29
10 files changed, 414 insertions, 0 deletions
diff --git a/vendor/guzzle/guzzle/src/Guzzle/Log/AbstractLogAdapter.php b/vendor/guzzle/guzzle/src/Guzzle/Log/AbstractLogAdapter.php
new file mode 100644
index 0000000..7f6271b
--- /dev/null
+++ b/vendor/guzzle/guzzle/src/Guzzle/Log/AbstractLogAdapter.php
@@ -0,0 +1,16 @@
+<?php
+
+namespace Guzzle\Log;
+
+/**
+ * Adapter class that allows Guzzle to log data using various logging implementations
+ */
+abstract class AbstractLogAdapter implements LogAdapterInterface
+{
+ protected $log;
+
+ public function getLogObject()
+ {
+ return $this->log;
+ }
+}
diff --git a/vendor/guzzle/guzzle/src/Guzzle/Log/ArrayLogAdapter.php b/vendor/guzzle/guzzle/src/Guzzle/Log/ArrayLogAdapter.php
new file mode 100644
index 0000000..a70fc8d
--- /dev/null
+++ b/vendor/guzzle/guzzle/src/Guzzle/Log/ArrayLogAdapter.php
@@ -0,0 +1,34 @@
+<?php
+
+namespace Guzzle\Log;
+
+/**
+ * Stores all log messages in an array
+ */
+class ArrayLogAdapter implements LogAdapterInterface
+{
+ protected $logs = array();
+
+ public function log($message, $priority = LOG_INFO, $extras = array())
+ {
+ $this->logs[] = array('message' => $message, 'priority' => $priority, 'extras' => $extras);
+ }
+
+ /**
+ * Get logged entries
+ *
+ * @return array
+ */
+ public function getLogs()
+ {
+ return $this->logs;
+ }
+
+ /**
+ * Clears logged entries
+ */
+ public function clearLogs()
+ {
+ $this->logs = array();
+ }
+}
diff --git a/vendor/guzzle/guzzle/src/Guzzle/Log/ClosureLogAdapter.php b/vendor/guzzle/guzzle/src/Guzzle/Log/ClosureLogAdapter.php
new file mode 100644
index 0000000..d4bb73f
--- /dev/null
+++ b/vendor/guzzle/guzzle/src/Guzzle/Log/ClosureLogAdapter.php
@@ -0,0 +1,23 @@
+<?php
+
+namespace Guzzle\Log;
+
+/**
+ * Logs messages using Closures. Closures combined with filtering can trigger application events based on log messages.
+ */
+class ClosureLogAdapter extends AbstractLogAdapter
+{
+ public function __construct($logObject)
+ {
+ if (!is_callable($logObject)) {
+ throw new \InvalidArgumentException('Object must be callable');
+ }
+
+ $this->log = $logObject;
+ }
+
+ public function log($message, $priority = LOG_INFO, $extras = array())
+ {
+ call_user_func($this->log, $message, $priority, $extras);
+ }
+}
diff --git a/vendor/guzzle/guzzle/src/Guzzle/Log/LogAdapterInterface.php b/vendor/guzzle/guzzle/src/Guzzle/Log/LogAdapterInterface.php
new file mode 100644
index 0000000..d7ac4ea
--- /dev/null
+++ b/vendor/guzzle/guzzle/src/Guzzle/Log/LogAdapterInterface.php
@@ -0,0 +1,18 @@
+<?php
+
+namespace Guzzle\Log;
+
+/**
+ * Adapter class that allows Guzzle to log data to various logging implementations.
+ */
+interface LogAdapterInterface
+{
+ /**
+ * Log a message at a priority
+ *
+ * @param string $message Message to log
+ * @param integer $priority Priority of message (use the \LOG_* constants of 0 - 7)
+ * @param array $extras Extra information to log in event
+ */
+ public function log($message, $priority = LOG_INFO, $extras = array());
+}
diff --git a/vendor/guzzle/guzzle/src/Guzzle/Log/MessageFormatter.php b/vendor/guzzle/guzzle/src/Guzzle/Log/MessageFormatter.php
new file mode 100644
index 0000000..b5cfe9d
--- /dev/null
+++ b/vendor/guzzle/guzzle/src/Guzzle/Log/MessageFormatter.php
@@ -0,0 +1,179 @@
+<?php
+
+namespace Guzzle\Log;
+
+use Guzzle\Http\Curl\CurlHandle;
+use Guzzle\Http\Message\RequestInterface;
+use Guzzle\Http\Message\EntityEnclosingRequestInterface;
+use Guzzle\Http\Message\Response;
+
+/**
+ * Message formatter used in various places in the framework
+ *
+ * Format messages using a template that can contain the the following variables:
+ *
+ * - {request}: Full HTTP request message
+ * - {response}: Full HTTP response message
+ * - {ts}: Timestamp
+ * - {host}: Host of the request
+ * - {method}: Method of the request
+ * - {url}: URL of the request
+ * - {host}: Host of the request
+ * - {protocol}: Request protocol
+ * - {version}: Protocol version
+ * - {resource}: Resource of the request (path + query + fragment)
+ * - {port}: Port of the request
+ * - {hostname}: Hostname of the machine that sent the request
+ * - {code}: Status code of the response (if available)
+ * - {phrase}: Reason phrase of the response (if available)
+ * - {curl_error}: Curl error message (if available)
+ * - {curl_code}: Curl error code (if available)
+ * - {curl_stderr}: Curl standard error (if available)
+ * - {connect_time}: Time in seconds it took to establish the connection (if available)
+ * - {total_time}: Total transaction time in seconds for last transfer (if available)
+ * - {req_header_*}: Replace `*` with the lowercased name of a request header to add to the message
+ * - {res_header_*}: Replace `*` with the lowercased name of a response header to add to the message
+ * - {req_body}: Request body
+ * - {res_body}: Response body
+ */
+class MessageFormatter
+{
+ const DEFAULT_FORMAT = "{hostname} {req_header_User-Agent} - [{ts}] \"{method} {resource} {protocol}/{version}\" {code} {res_header_Content-Length}";
+ const DEBUG_FORMAT = ">>>>>>>>\n{request}\n<<<<<<<<\n{response}\n--------\n{curl_stderr}";
+ const SHORT_FORMAT = '[{ts}] "{method} {resource} {protocol}/{version}" {code}';
+
+ /**
+ * @var string Template used to format log messages
+ */
+ protected $template;
+
+ /**
+ * @param string $template Log message template
+ */
+ public function __construct($template = self::DEFAULT_FORMAT)
+ {
+ $this->template = $template ?: self::DEFAULT_FORMAT;
+ }
+
+ /**
+ * Set the template to use for logging
+ *
+ * @param string $template Log message template
+ *
+ * @return self
+ */
+ public function setTemplate($template)
+ {
+ $this->template = $template;
+
+ return $this;
+ }
+
+ /**
+ * Returns a formatted message
+ *
+ * @param RequestInterface $request Request that was sent
+ * @param Response $response Response that was received
+ * @param CurlHandle $handle Curl handle associated with the message
+ * @param array $customData Associative array of custom template data
+ *
+ * @return string
+ */
+ public function format(
+ RequestInterface $request,
+ Response $response = null,
+ CurlHandle $handle = null,
+ array $customData = array()
+ ) {
+ $cache = $customData;
+
+ return preg_replace_callback(
+ '/{\s*([A-Za-z_\-\.0-9]+)\s*}/',
+ function (array $matches) use ($request, $response, $handle, &$cache) {
+
+ if (array_key_exists($matches[1], $cache)) {
+ return $cache[$matches[1]];
+ }
+
+ $result = '';
+ switch ($matches[1]) {
+ case 'request':
+ $result = (string) $request;
+ break;
+ case 'response':
+ $result = (string) $response;
+ break;
+ case 'req_body':
+ $result = $request instanceof EntityEnclosingRequestInterface
+ ? (string) $request->getBody() : '';
+ break;
+ case 'res_body':
+ $result = $response ? $response->getBody(true) : '';
+ break;
+ case 'ts':
+ $result = gmdate('c');
+ break;
+ case 'method':
+ $result = $request->getMethod();
+ break;
+ case 'url':
+ $result = (string) $request->getUrl();
+ break;
+ case 'resource':
+ $result = $request->getResource();
+ break;
+ case 'protocol':
+ $result = 'HTTP';
+ break;
+ case 'version':
+ $result = $request->getProtocolVersion();
+ break;
+ case 'host':
+ $result = $request->getHost();
+ break;
+ case 'hostname':
+ $result = gethostname();
+ break;
+ case 'port':
+ $result = $request->getPort();
+ break;
+ case 'code':
+ $result = $response ? $response->getStatusCode() : '';
+ break;
+ case 'phrase':
+ $result = $response ? $response->getReasonPhrase() : '';
+ break;
+ case 'connect_time':
+ $result = $handle && $handle->getInfo(CURLINFO_CONNECT_TIME)
+ ? $handle->getInfo(CURLINFO_CONNECT_TIME)
+ : ($response ? $response->getInfo('connect_time') : '');
+ break;
+ case 'total_time':
+ $result = $handle && $handle->getInfo(CURLINFO_TOTAL_TIME)
+ ? $handle->getInfo(CURLINFO_TOTAL_TIME)
+ : ($response ? $response->getInfo('total_time') : '');
+ break;
+ case 'curl_error':
+ $result = $handle ? $handle->getError() : '';
+ break;
+ case 'curl_code':
+ $result = $handle ? $handle->getErrorNo() : '';
+ break;
+ case 'curl_stderr':
+ $result = $handle ? $handle->getStderr() : '';
+ break;
+ default:
+ if (strpos($matches[1], 'req_header_') === 0) {
+ $result = $request->getHeader(substr($matches[1], 11));
+ } elseif ($response && strpos($matches[1], 'res_header_') === 0) {
+ $result = $response->getHeader(substr($matches[1], 11));
+ }
+ }
+
+ $cache[$matches[1]] = $result;
+ return $result;
+ },
+ $this->template
+ );
+ }
+}
diff --git a/vendor/guzzle/guzzle/src/Guzzle/Log/MonologLogAdapter.php b/vendor/guzzle/guzzle/src/Guzzle/Log/MonologLogAdapter.php
new file mode 100644
index 0000000..6afe7b6
--- /dev/null
+++ b/vendor/guzzle/guzzle/src/Guzzle/Log/MonologLogAdapter.php
@@ -0,0 +1,34 @@
+<?php
+
+namespace Guzzle\Log;
+
+use Monolog\Logger;
+
+/**
+ * @deprecated
+ * @codeCoverageIgnore
+ */
+class MonologLogAdapter extends AbstractLogAdapter
+{
+ /**
+ * syslog to Monolog mappings
+ */
+ private static $mapping = array(
+ LOG_DEBUG => Logger::DEBUG,
+ LOG_INFO => Logger::INFO,
+ LOG_WARNING => Logger::WARNING,
+ LOG_ERR => Logger::ERROR,
+ LOG_CRIT => Logger::CRITICAL,
+ LOG_ALERT => Logger::ALERT
+ );
+
+ public function __construct(Logger $logObject)
+ {
+ $this->log = $logObject;
+ }
+
+ public function log($message, $priority = LOG_INFO, $extras = array())
+ {
+ $this->log->addRecord(self::$mapping[$priority], $message, $extras);
+ }
+}
diff --git a/vendor/guzzle/guzzle/src/Guzzle/Log/PsrLogAdapter.php b/vendor/guzzle/guzzle/src/Guzzle/Log/PsrLogAdapter.php
new file mode 100644
index 0000000..38a2b60
--- /dev/null
+++ b/vendor/guzzle/guzzle/src/Guzzle/Log/PsrLogAdapter.php
@@ -0,0 +1,36 @@
+<?php
+
+namespace Guzzle\Log;
+
+use Psr\Log\LogLevel;
+use Psr\Log\LoggerInterface;
+
+/**
+ * PSR-3 log adapter
+ *
+ * @link https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md
+ */
+class PsrLogAdapter extends AbstractLogAdapter
+{
+ /**
+ * syslog to PSR-3 mappings
+ */
+ private static $mapping = array(
+ LOG_DEBUG => LogLevel::DEBUG,
+ LOG_INFO => LogLevel::INFO,
+ LOG_WARNING => LogLevel::WARNING,
+ LOG_ERR => LogLevel::ERROR,
+ LOG_CRIT => LogLevel::CRITICAL,
+ LOG_ALERT => LogLevel::ALERT
+ );
+
+ public function __construct(LoggerInterface $logObject)
+ {
+ $this->log = $logObject;
+ }
+
+ public function log($message, $priority = LOG_INFO, $extras = array())
+ {
+ $this->log->log(self::$mapping[$priority], $message, $extras);
+ }
+}
diff --git a/vendor/guzzle/guzzle/src/Guzzle/Log/Zf1LogAdapter.php b/vendor/guzzle/guzzle/src/Guzzle/Log/Zf1LogAdapter.php
new file mode 100644
index 0000000..0ea8e3b
--- /dev/null
+++ b/vendor/guzzle/guzzle/src/Guzzle/Log/Zf1LogAdapter.php
@@ -0,0 +1,24 @@
+<?php
+
+namespace Guzzle\Log;
+
+use Guzzle\Common\Version;
+
+/**
+ * Adapts a Zend Framework 1 logger object
+ * @deprecated
+ * @codeCoverageIgnore
+ */
+class Zf1LogAdapter extends AbstractLogAdapter
+{
+ public function __construct(\Zend_Log $logObject)
+ {
+ $this->log = $logObject;
+ Version::warn(__CLASS__ . ' is deprecated');
+ }
+
+ public function log($message, $priority = LOG_INFO, $extras = array())
+ {
+ $this->log->log($message, $priority, $extras);
+ }
+}
diff --git a/vendor/guzzle/guzzle/src/Guzzle/Log/Zf2LogAdapter.php b/vendor/guzzle/guzzle/src/Guzzle/Log/Zf2LogAdapter.php
new file mode 100644
index 0000000..863f6a1
--- /dev/null
+++ b/vendor/guzzle/guzzle/src/Guzzle/Log/Zf2LogAdapter.php
@@ -0,0 +1,21 @@
+<?php
+
+namespace Guzzle\Log;
+
+use Zend\Log\Logger;
+
+/**
+ * Adapts a Zend Framework 2 logger object
+ */
+class Zf2LogAdapter extends AbstractLogAdapter
+{
+ public function __construct(Logger $logObject)
+ {
+ $this->log = $logObject;
+ }
+
+ public function log($message, $priority = LOG_INFO, $extras = array())
+ {
+ $this->log->log($priority, $message, $extras);
+ }
+}
diff --git a/vendor/guzzle/guzzle/src/Guzzle/Log/composer.json b/vendor/guzzle/guzzle/src/Guzzle/Log/composer.json
new file mode 100644
index 0000000..a8213e8
--- /dev/null
+++ b/vendor/guzzle/guzzle/src/Guzzle/Log/composer.json
@@ -0,0 +1,29 @@
+{
+ "name": "guzzle/log",
+ "description": "Guzzle log adapter component",
+ "homepage": "http://guzzlephp.org/",
+ "keywords": ["log", "adapter", "guzzle"],
+ "license": "MIT",
+ "authors": [
+ {
+ "name": "Michael Dowling",
+ "email": "mtdowling@gmail.com",
+ "homepage": "https://github.com/mtdowling"
+ }
+ ],
+ "require": {
+ "php": ">=5.3.2"
+ },
+ "autoload": {
+ "psr-0": { "Guzzle\\Log": "" }
+ },
+ "suggest": {
+ "guzzle/http": "self.version"
+ },
+ "target-dir": "Guzzle/Log",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.7-dev"
+ }
+ }
+}