Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
plugins
/
infrastructure
/
src
/
Monolog
/
Handler
:
MongoDBHandler.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /* * This file is part of the Monolog package. * * (c) Jordi Boggiano <j.boggiano@seld.be> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Google\Site_Kit_Dependencies\Monolog\Handler; use Google\Site_Kit_Dependencies\Monolog\Logger; use Google\Site_Kit_Dependencies\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 \Google\Site_Kit_Dependencies\Monolog\Handler\AbstractProcessingHandler { protected $mongoCollection; public function __construct($mongo, $database, $collection, $level = \Google\Site_Kit_Dependencies\Monolog\Logger::DEBUG, $bubble = \true) { if (!($mongo instanceof \MongoClient || $mongo instanceof \Mongo || $mongo instanceof \Google\Site_Kit_Dependencies\MongoDB\Client)) { throw new \InvalidArgumentException('MongoClient, Mongo or MongoDB\\Client instance required'); } $this->mongoCollection = $mongo->selectCollection($database, $collection); parent::__construct($level, $bubble); } protected function write(array $record) { if ($this->mongoCollection instanceof \Google\Site_Kit_Dependencies\MongoDB\Collection) { $this->mongoCollection->insertOne($record["formatted"]); } else { $this->mongoCollection->save($record["formatted"]); } } /** * {@inheritDoc} */ protected function getDefaultFormatter() { return new \Google\Site_Kit_Dependencies\Monolog\Formatter\NormalizerFormatter(); } }