Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
<?php
2
/*
3
 * Copyright 2014 Google Inc.
4
 *
5
 * Licensed under the Apache License, Version 2.0 (the "License");
6
 * you may not use this file except in compliance with the License.
7
 * You may obtain a copy of the License at
8
 *
9
 *     http://www.apache.org/licenses/LICENSE-2.0
10
 *
11
 * Unless required by applicable law or agreed to in writing, software
12
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 * See the License for the specific language governing permissions and
15
 * limitations under the License.
16
 */
17
 
18
if (!class_exists('Google_Client')) {
19
  require_once dirname(__FILE__) . '/../autoload.php';
20
}
21
 
22
/**
23
 * Psr logging class based on the PSR-3 standard.
24
 *
25
 * This logger will delegate all logging to a PSR-3 compatible logger specified
26
 * with the `Google_Logger_Psr::setLogger()` method.
27
 */
28
#[AllowDynamicProperties]
29
class Google_Logger_Psr extends Google_Logger_Abstract
30
{
31
  /**
32
   * @param Psr\Log\LoggerInterface $logger The PSR-3 logger
33
   */
34
  private $logger;
35
 
36
  /**
37
   * @param Google_Client $client           The current Google client
38
   * @param Psr\Log\LoggerInterface $logger PSR-3 logger where logging will be delegated.
39
   */
40
  public function __construct(Google_Client $client, /*Psr\Log\LoggerInterface*/ $logger = null)
41
  {
42
    parent::__construct($client);
43
 
44
    if ($logger) {
45
      $this->setLogger($logger);
46
    }
47
  }
48
 
49
  /**
50
   * Sets the PSR-3 logger where logging will be delegated.
51
   *
52
   * NOTE: The `$logger` should technically implement
53
   * `Psr\Log\LoggerInterface`, but we don't explicitly require this so that
54
   * we can be compatible with PHP 5.2.
55
   *
56
   * @param Psr\Log\LoggerInterface $logger The PSR-3 logger
57
   */
58
  public function setLogger(/*Psr\Log\LoggerInterface*/ $logger)
59
  {
60
    $this->logger = $logger;
61
  }
62
 
63
  /**
64
   * {@inheritdoc}
65
   */
66
  public function shouldHandle($level)
67
  {
68
    return isset($this->logger) && parent::shouldHandle($level);
69
  }
70
 
71
  /**
72
   * {@inheritdoc}
73
   */
74
  public function log($level, $message, array $context = array())
75
  {
76
    if (!$this->shouldHandle($level)) {
77
      return false;
78
    }
79
 
80
    if ($context) {
81
      $this->reverseJsonInContext($context);
82
    }
83
 
84
    $levelName = is_int($level) ? array_search($level, self::$levels) : $level;
85
    $this->logger->log($levelName, $message, $context);
86
  }
87
 
88
  /**
89
   * {@inheritdoc}
90
   */
91
  protected function write($message, array $context = array())
92
  {
93
  }
94
}