Blame view

sources/apps/files_external/3rdparty/aws-sdk-php/Monolog/Handler/MongoDBHandler.php 1.36 KB
31b7f2792   Kload   Upgrade to ownclo...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
  <?php
  
  /*
   * This file is part of the Monolog package.
   *
   * (c) Thomas Tourlourat <thomas@tourlourat.com>
   *
   * For the full copyright and license information, please view the LICENSE
   * file that was distributed with this source code.
   */
  
  namespace Monolog\Handler;
  
  use Monolog\Logger;
  use Monolog\Formatter\NormalizerFormatter;
  
  /**
   * Logs to a MongoDB database.
   *
   * usage example:
   *
   *   $log = new Logger('application');
   *   $mongodb = new MongoDBHandler(new \Mongo("mongodb://localhost:27017"), "logs", "prod");
   *   $log->pushHandler($mongodb);
   *
   * @author Thomas Tourlourat <thomas@tourlourat.com>
   */
  class MongoDBHandler extends AbstractProcessingHandler
  {
      private $mongoCollection;
  
      public function __construct($mongo, $database, $collection, $level = Logger::DEBUG, $bubble = true)
      {
          if (!($mongo instanceof \MongoClient || $mongo instanceof \Mongo)) {
              throw new \InvalidArgumentException('MongoClient or Mongo instance required');
          }
  
          $this->mongoCollection = $mongo->selectCollection($database, $collection);
  
          parent::__construct($level, $bubble);
      }
  
      protected function write(array $record)
      {
          $this->mongoCollection->save($record["formatted"]);
      }
  
      /**
       * {@inheritDoc}
       */
      protected function getDefaultFormatter()
      {
          return new NormalizerFormatter();
      }
  }