123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\DB\Logger;
- use Magento\Framework\DB\LoggerInterface;
- class LoggerProxy implements LoggerInterface
- {
- /**
- * Configuration group name
- */
- const CONF_GROUP_NAME = 'db_logger';
- /**
- * Logger alias param name
- */
- const PARAM_ALIAS = 'output';
- /**
- * Logger log all param name
- */
- const PARAM_LOG_ALL = 'log_everything';
- /**
- * Logger query time param name
- */
- const PARAM_QUERY_TIME = 'query_time_threshold';
- /**
- * Logger call stack param name
- */
- const PARAM_CALL_STACK = 'include_stacktrace';
- /**
- * File logger alias
- */
- const LOGGER_ALIAS_FILE = 'file';
- /**
- * Quiet logger alias
- */
- const LOGGER_ALIAS_DISABLED = 'disabled';
- /**
- * @var LoggerInterface
- */
- private $logger;
- /**
- * @var FileFactory
- */
- private $fileFactory;
- /**
- * @var QuietFactory
- */
- private $quietFactory;
- /**
- * @var bool
- */
- private $loggerAlias;
- /**
- * @var bool
- */
- private $logAllQueries;
- /**
- * @var float
- */
- private $logQueryTime;
- /**
- * @var bool
- */
- private $logCallStack;
- /**
- * LoggerProxy constructor.
- * @param FileFactory $fileFactory
- * @param QuietFactory $quietFactory
- * @param bool $loggerAlias
- * @param bool $logAllQueries
- * @param float $logQueryTime
- * @param bool $logCallStack
- */
- public function __construct(
- FileFactory $fileFactory,
- QuietFactory $quietFactory,
- $loggerAlias,
- $logAllQueries = true,
- $logQueryTime = 0.001,
- $logCallStack = true
- ) {
- $this->fileFactory = $fileFactory;
- $this->quietFactory = $quietFactory;
- $this->loggerAlias = $loggerAlias;
- $this->logAllQueries = $logAllQueries;
- $this->logQueryTime = $logQueryTime;
- $this->logCallStack = $logCallStack;
- }
- /**
- * Get logger object. Initialize if needed.
- * @return LoggerInterface
- */
- private function getLogger()
- {
- if ($this->logger === null) {
- switch ($this->loggerAlias) {
- case self::LOGGER_ALIAS_FILE:
- $this->logger = $this->fileFactory->create(
- [
- 'logAllQueries' => $this->logAllQueries,
- 'logQueryTime' => $this->logQueryTime,
- 'logCallStack' => $this->logCallStack,
- ]
- );
- break;
- default:
- $this->logger = $this->quietFactory->create();
- break;
- }
- }
- return $this->logger;
- }
- /**
- * Adds log record
- *
- * @param string $str
- * @return void
- */
- public function log($str)
- {
- $this->getLogger()->log($str);
- }
- /**
- * @param string $type
- * @param string $sql
- * @param array $bind
- * @param \Zend_Db_Statement_Pdo|null $result
- * @return void
- */
- public function logStats($type, $sql, $bind = [], $result = null)
- {
- $this->getLogger()->logStats($type, $sql, $bind, $result);
- }
- /**
- * @param \Exception $exception
- * @return void
- */
- public function critical(\Exception $exception)
- {
- $this->getLogger()->critical($exception);
- }
- /**
- * @return void
- */
- public function startTimer()
- {
- $this->getLogger()->startTimer();
- }
- }
|