Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
LoggerAbstract.php
Go to the documentation of this file.
1 <?php
7 
10 
11 abstract class LoggerAbstract implements LoggerInterface
12 {
16  private $timer;
17 
21  private $logAllQueries;
22 
26  private $logQueryTime;
27 
31  private $logCallStack;
32 
38  public function __construct($logAllQueries = false, $logQueryTime = 0.05, $logCallStack = false)
39  {
40  $this->logAllQueries = $logAllQueries;
41  $this->logQueryTime = $logQueryTime;
42  $this->logCallStack = $logCallStack;
43  }
44 
48  public function startTimer()
49  {
50  $this->timer = microtime(true);
51  }
52 
63  public function getStats($type, $sql, $bind = [], $result = null)
64  {
65  $message = '## ' . getmypid() . ' ## ';
66  $nl = "\n";
67  $time = sprintf('%.4f', microtime(true) - $this->timer);
68 
69  if (!$this->logAllQueries && $time < $this->logQueryTime) {
70  return '';
71  }
72  switch ($type) {
73  case self::TYPE_CONNECT:
74  $message .= 'CONNECT' . $nl;
75  break;
77  $message .= 'TRANSACTION ' . $sql . $nl;
78  break;
79  case self::TYPE_QUERY:
80  $message .= 'QUERY' . $nl;
81  $message .= 'SQL: ' . $sql . $nl;
82  if ($bind) {
83  $message .= 'BIND: ' . var_export($bind, true) . $nl;
84  }
85  if ($result instanceof \Zend_Db_Statement_Pdo) {
86  $message .= 'AFF: ' . $result->rowCount() . $nl;
87  }
88  break;
89  }
90  $message .= 'TIME: ' . $time . $nl;
91 
92  if ($this->logCallStack) {
93  $message .= 'TRACE: ' . Debug::backtrace(true, false) . $nl;
94  }
95 
96  $message .= $nl;
97 
98  return $message;
99  }
100 }
static backtrace($return=false, $html=true, $withArgs=true)
Definition: Debug.php:50
__construct($logAllQueries=false, $logQueryTime=0.05, $logCallStack=false)
$message
$type
Definition: item.phtml:13
getStats($type, $sql, $bind=[], $result=null)