diff options
Diffstat (limited to 'Postman/Postman-Mail/google-api-php-client-1.1.2/src/Google/Logger/Abstract.php')
-rw-r--r-- | Postman/Postman-Mail/google-api-php-client-1.1.2/src/Google/Logger/Abstract.php | 406 |
1 files changed, 0 insertions, 406 deletions
diff --git a/Postman/Postman-Mail/google-api-php-client-1.1.2/src/Google/Logger/Abstract.php b/Postman/Postman-Mail/google-api-php-client-1.1.2/src/Google/Logger/Abstract.php deleted file mode 100644 index afa6128..0000000 --- a/Postman/Postman-Mail/google-api-php-client-1.1.2/src/Google/Logger/Abstract.php +++ /dev/null @@ -1,406 +0,0 @@ -<?php -/* - * Copyright 2014 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -require_once realpath(dirname(__FILE__) . '/../../../autoload.php'); - -/** - * Abstract logging class based on the PSR-3 standard. - * - * NOTE: We don't implement `Psr\Log\LoggerInterface` because we need to - * maintain PHP 5.2 support. - * - * @see https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-3-logger-interface.md - */ -abstract class Postman_Google_Logger_Abstract -{ - /** - * Default log format - */ - const DEFAULT_LOG_FORMAT = "[%datetime%] %level%: %message% %context%\n"; - /** - * Default date format - * - * Example: 16/Nov/2014:03:26:16 -0500 - */ - const DEFAULT_DATE_FORMAT = 'd/M/Y:H:i:s O'; - - /** - * System is unusable - */ - const EMERGENCY = 'emergency'; - /** - * Action must be taken immediately - * - * Example: Entire website down, database unavailable, etc. This should - * trigger the SMS alerts and wake you up. - */ - const ALERT = 'alert'; - /** - * Critical conditions - * - * Example: Application component unavailable, unexpected exception. - */ - const CRITICAL = 'critical'; - /** - * Runtime errors that do not require immediate action but should typically - * be logged and monitored. - */ - const ERROR = 'error'; - /** - * Exceptional occurrences that are not errors. - * - * Example: Use of deprecated APIs, poor use of an API, undesirable things - * that are not necessarily wrong. - */ - const WARNING = 'warning'; - /** - * Normal but significant events. - */ - const NOTICE = 'notice'; - /** - * Interesting events. - * - * Example: User logs in, SQL logs. - */ - const INFO = 'info'; - /** - * Detailed debug information. - */ - const DEBUG = 'debug'; - - /** - * @var array $levels Logging levels - */ - protected static $levels = array( - self::EMERGENCY => 600, - self::ALERT => 550, - self::CRITICAL => 500, - self::ERROR => 400, - self::WARNING => 300, - self::NOTICE => 250, - self::INFO => 200, - self::DEBUG => 100, - ); - - /** - * @var integer $level The minimum logging level - */ - protected $level = self::DEBUG; - - /** - * @var string $logFormat The current log format - */ - protected $logFormat = self::DEFAULT_LOG_FORMAT; - /** - * @var string $dateFormat The current date format - */ - protected $dateFormat = self::DEFAULT_DATE_FORMAT; - - /** - * @var boolean $allowNewLines If newlines are allowed - */ - protected $allowNewLines = false; - - /** - * @param Postman_Google_Client $client The current Google client - */ - public function __construct(Postman_Google_Client $client) - { - $this->setLevel( - $client->getClassConfig('Postman_Google_Logger_Abstract', 'level') - ); - - $format = $client->getClassConfig('Postman_Google_Logger_Abstract', 'log_format'); - $this->logFormat = $format ? $format : self::DEFAULT_LOG_FORMAT; - - $format = $client->getClassConfig('Postman_Google_Logger_Abstract', 'date_format'); - $this->dateFormat = $format ? $format : self::DEFAULT_DATE_FORMAT; - - $this->allowNewLines = (bool) $client->getClassConfig( - 'Postman_Google_Logger_Abstract', - 'allow_newlines' - ); - } - - /** - * Sets the minimum logging level that this logger handles. - * - * @param integer $level - */ - public function setLevel($level) - { - $this->level = $this->normalizeLevel($level); - } - - /** - * Checks if the logger should handle messages at the provided level. - * - * @param integer $level - * @return boolean - */ - public function shouldHandle($level) - { - return $this->normalizeLevel($level) >= $this->level; - } - - /** - * System is unusable. - * - * @param string $message The log message - * @param array $context The log context - */ - public function emergency($message, array $context = array()) - { - $this->log(self::EMERGENCY, $message, $context); - } - - /** - * Action must be taken immediately. - * - * Example: Entire website down, database unavailable, etc. This should - * trigger the SMS alerts and wake you up. - * - * @param string $message The log message - * @param array $context The log context - */ - public function alert($message, array $context = array()) - { - $this->log(self::ALERT, $message, $context); - } - - /** - * Critical conditions. - * - * Example: Application component unavailable, unexpected exception. - * - * @param string $message The log message - * @param array $context The log context - */ - public function critical($message, array $context = array()) - { - $this->log(self::CRITICAL, $message, $context); - } - - /** - * Runtime errors that do not require immediate action but should typically - * be logged and monitored. - * - * @param string $message The log message - * @param array $context The log context - */ - public function error($message, array $context = array()) - { - $this->log(self::ERROR, $message, $context); - } - - /** - * Exceptional occurrences that are not errors. - * - * Example: Use of deprecated APIs, poor use of an API, undesirable things - * that are not necessarily wrong. - * - * @param string $message The log message - * @param array $context The log context - */ - public function warning($message, array $context = array()) - { - $this->log(self::WARNING, $message, $context); - } - - /** - * Normal but significant events. - * - * @param string $message The log message - * @param array $context The log context - */ - public function notice($message, array $context = array()) - { - $this->log(self::NOTICE, $message, $context); - } - - /** - * Interesting events. - * - * Example: User logs in, SQL logs. - * - * @param string $message The log message - * @param array $context The log context - */ - public function info($message, array $context = array()) - { - $this->log(self::INFO, $message, $context); - } - - /** - * Detailed debug information. - * - * @param string $message The log message - * @param array $context The log context - */ - public function debug($message, array $context = array()) - { - $this->log(self::DEBUG, $message, $context); - } - - /** - * Logs with an arbitrary level. - * - * @param mixed $level The log level - * @param string $message The log message - * @param array $context The log context - */ - public function log($level, $message, array $context = array()) - { - if (!$this->shouldHandle($level)) { - return false; - } - - $levelName = is_int($level) ? array_search($level, self::$levels) : $level; - $message = $this->interpolate( - array( - 'message' => $message, - 'context' => $context, - 'level' => strtoupper($levelName), - 'datetime' => new DateTime(), - ) - ); - - $this->write($message); - } - - /** - * Interpolates log variables into the defined log format. - * - * @param array $variables The log variables. - * @return string - */ - protected function interpolate(array $variables = array()) - { - $template = $this->logFormat; - - if (!$variables['context']) { - $template = str_replace('%context%', '', $template); - unset($variables['context']); - } else { - $this->reverseJsonInContext($variables['context']); - } - - foreach ($variables as $key => $value) { - if (strpos($template, '%'. $key .'%') !== false) { - $template = str_replace( - '%' . $key . '%', - $this->export($value), - $template - ); - } - } - - return $template; - } - - /** - * Reverses JSON encoded PHP arrays and objects so that they log better. - * - * @param array $context The log context - */ - protected function reverseJsonInContext(array &$context) - { - if (!$context) { - return; - } - - foreach ($context as $key => $val) { - if (!$val || !is_string($val) || !($val[0] == '{' || $val[0] == '[')) { - continue; - } - - $json = @json_decode($val); - if (is_object($json) || is_array($json)) { - $context[$key] = $json; - } - } - } - - /** - * Exports a PHP value for logging to a string. - * - * @param mixed $value The value to - */ - protected function export($value) - { - if (is_string($value)) { - if ($this->allowNewLines) { - return $value; - } - - return preg_replace('/[\r\n]+/', ' ', $value); - } - - if (is_resource($value)) { - return sprintf( - 'resource(%d) of type (%s)', - $value, - get_resource_type($value) - ); - } - - if ($value instanceof DateTime) { - return $value->format($this->dateFormat); - } - - if (version_compare(PHP_VERSION, '5.4.0', '>=')) { - $options = JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE; - - if ($this->allowNewLines) { - $options |= JSON_PRETTY_PRINT; - } - - return @json_encode($value, $options); - } - - return str_replace('\\/', '/', @json_encode($value)); - } - - /** - * Converts a given log level to the integer form. - * - * @param mixed $level The logging level - * @return integer $level The normalized level - * @throws Postman_Google_Logger_Exception If $level is invalid - */ - protected function normalizeLevel($level) - { - if (is_int($level) && array_search($level, self::$levels) !== false) { - return $level; - } - - if (is_string($level) && isset(self::$levels[$level])) { - return self::$levels[$level]; - } - - throw new Postman_Google_Logger_Exception( - sprintf("Unknown LogLevel: '%s'", $level) - ); - } - - /** - * Writes a message to the current log implementation. - * - * @param string $message The message - */ - abstract protected function write($message); -} |