diff options
Diffstat (limited to 'Postman/Postman-Mail/google-api-php-client-1.1.2/src/Google/Logger/Psr.php')
-rw-r--r-- | Postman/Postman-Mail/google-api-php-client-1.1.2/src/Google/Logger/Psr.php | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/Postman/Postman-Mail/google-api-php-client-1.1.2/src/Google/Logger/Psr.php b/Postman/Postman-Mail/google-api-php-client-1.1.2/src/Google/Logger/Psr.php new file mode 100644 index 0000000..27f4418 --- /dev/null +++ b/Postman/Postman-Mail/google-api-php-client-1.1.2/src/Google/Logger/Psr.php @@ -0,0 +1,91 @@ +<?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'); + +/** + * Psr logging class based on the PSR-3 standard. + * + * This logger will delegate all logging to a PSR-3 compatible logger specified + * with the `Postman_Google_Logger_Psr::setLogger()` method. + */ +class Postman_Google_Logger_Psr extends Postman_Google_Logger_Abstract +{ + /** + * @param Psr\Log\LoggerInterface $logger The PSR-3 logger + */ + private $logger; + + /** + * @param Postman_Google_Client $client The current Google client + * @param Psr\Log\LoggerInterface $logger PSR-3 logger where logging will be delegated. + */ + public function __construct(Postman_Google_Client $client, /*Psr\Log\LoggerInterface*/ $logger = null) + { + parent::__construct($client); + + if ($logger) { + $this->setLogger($logger); + } + } + + /** + * Sets the PSR-3 logger where logging will be delegated. + * + * NOTE: The `$logger` should technically implement + * `Psr\Log\LoggerInterface`, but we don't explicitly require this so that + * we can be compatible with PHP 5.2. + * + * @param Psr\Log\LoggerInterface $logger The PSR-3 logger + */ + public function setLogger(/*Psr\Log\LoggerInterface*/ $logger) + { + $this->logger = $logger; + } + + /** + * {@inheritdoc} + */ + public function shouldHandle($level) + { + return isset($this->logger) && parent::shouldHandle($level); + } + + /** + * {@inheritdoc} + */ + public function log($level, $message, array $context = array()) + { + if (!$this->shouldHandle($level)) { + return false; + } + + if ($context) { + $this->reverseJsonInContext($context); + } + + $levelName = is_int($level) ? array_search($level, self::$levels) : $level; + $this->logger->log($levelName, $message, $context); + } + + /** + * {@inheritdoc} + */ + protected function write($message, array $context = array()) + { + } +} |