Your IP : 127.0.0.1
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\DB\Logger;
use Magento\Framework\DB\LoggerInterface;
use Magento\Framework\Debug;
abstract class LoggerAbstract implements LoggerInterface
{
/**
* @var int
*/
private $timer;
/**
* @var bool
*/
private $logAllQueries;
/**
* @var float
*/
private $logQueryTime;
/**
* @var bool
*/
private $logCallStack;
/**
* @param bool $logAllQueries
* @param float $logQueryTime
* @param bool $logCallStack
*/
public function __construct($logAllQueries = false, $logQueryTime = 0.05, $logCallStack = false)
{
$this->logAllQueries = $logAllQueries;
$this->logQueryTime = $logQueryTime;
$this->logCallStack = $logCallStack;
}
/**
* {@inheritdoc}
*/
public function startTimer()
{
$this->timer = microtime(true);
}
/**
* Get formatted statistics message
*
* @param string $type Type of query
* @param string $sql
* @param array $bind
* @param \Zend_Db_Statement_Pdo|null $result
* @return string
* @throws \Zend_Db_Statement_Exception
*/
public function getStats($type, $sql, $bind = [], $result = null)
{
$message = '## ' . getmypid() . ' ## ';
$nl = "\n";
$time = sprintf('%.4f', microtime(true) - $this->timer);
if (!$this->logAllQueries && $time < $this->logQueryTime) {
return '';
}
switch ($type) {
case self::TYPE_CONNECT:
$message .= 'CONNECT' . $nl;
break;
case self::TYPE_TRANSACTION:
$message .= 'TRANSACTION ' . $sql . $nl;
break;
case self::TYPE_QUERY:
$message .= 'QUERY' . $nl;
$message .= 'SQL: ' . $sql . $nl;
if ($bind) {
$message .= 'BIND: ' . var_export($bind, true) . $nl;
}
if ($result instanceof \Zend_Db_Statement_Pdo) {
$message .= 'AFF: ' . $result->rowCount() . $nl;
}
break;
}
$message .= 'TIME: ' . $time . $nl;
if ($this->logCallStack) {
$message .= 'TRACE: ' . Debug::backtrace(true, false) . $nl;
}
$message .= $nl;
return $message;
}
}