Skip to content

Commit 565ba43

Browse files
committed
Added DB logger proxy. Modified logger interface preference in di.xml
1 parent e3fc5b7 commit 565ba43

File tree

2 files changed

+88
-1
lines changed

2 files changed

+88
-1
lines changed

app/etc/di.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@
102102
<preference for="Magento\Framework\Api\MetadataObjectInterface" type="Magento\Framework\Api\AttributeMetadata"/>
103103
<preference for="Magento\Framework\Api\SearchCriteriaInterface" type="Magento\Framework\Api\SearchCriteria"/>
104104
<preference for="Magento\Framework\App\Rss\UrlBuilderInterface" type="Magento\Framework\App\Rss\UrlBuilder"/>
105-
<preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\Quiet"/>
105+
<preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\LoggerProxy"/>
106106
<preference for="Magento\Framework\App\ResourceConnection\ConnectionAdapterInterface" type="Magento\Framework\Model\ResourceModel\Type\Db\Pdo\Mysql"/>
107107
<preference for="Magento\Framework\DB\QueryInterface" type="Magento\Framework\DB\Query"/>
108108
<preference for="Magento\Framework\App\ProductMetadataInterface" type="Magento\Framework\App\ProductMetadata"/>
@@ -1318,4 +1318,9 @@
13181318
</argument>
13191319
</arguments>
13201320
</type>
1321+
<type name="Magento\Framework\DB\Logger\LoggerProxy">
1322+
<arguments>
1323+
<argument name="loggerAlias" xsi:type="init_parameter">\Magento\Framework\DB\Logger\LoggerProxy::PARAM_ALIAS</argument>
1324+
</arguments>
1325+
</type>
13211326
</config>
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Framework\DB\Logger;
8+
9+
class LoggerProxy extends LoggerAbstract
10+
{
11+
/**
12+
* Logger alias
13+
*/
14+
const PARAM_ALIAS = 'db_logger_alias';
15+
16+
/**
17+
* @var LoggerAbstract
18+
*/
19+
private $logger;
20+
21+
/**
22+
* LoggerProxy constructor.
23+
* @param FileFactory $loggerFileFactory
24+
* @param QuietFactory $loggerQuietFactory
25+
* @param bool $loggerAlias
26+
* @param bool $logAllQueries
27+
* @param float $logQueryTime
28+
* @param bool $logCallStack
29+
*/
30+
public function __construct(
31+
FileFactory $loggerFileFactory,
32+
QuietFactory $loggerQuietFactory,
33+
$loggerAlias,
34+
$logAllQueries = false,
35+
$logQueryTime = 0.05,
36+
$logCallStack = false
37+
)
38+
{
39+
switch ($loggerAlias) {
40+
case "file":
41+
$this->logger = $loggerFileFactory->create();
42+
break;
43+
default:
44+
$this->logger = $loggerQuietFactory->create();
45+
break;
46+
}
47+
48+
parent::__construct($logAllQueries, $logQueryTime, $logCallStack);
49+
}
50+
51+
/**
52+
* Adds log record
53+
*
54+
* @param string $str
55+
* @return void
56+
*/
57+
public function log($str)
58+
{
59+
$this->logger->log($str);
60+
}
61+
62+
/**
63+
* @param string $type
64+
* @param string $sql
65+
* @param array $bind
66+
* @param \Zend_Db_Statement_Pdo|null $result
67+
* @return void
68+
*/
69+
public function logStats($type, $sql, $bind = [], $result = null)
70+
{
71+
$this->logger->logStats($type, $sql, $bind, $result);
72+
}
73+
74+
/**
75+
* @param \Exception $e
76+
* @return void
77+
*/
78+
public function critical(\Exception $e)
79+
{
80+
$this->logger->critical($e);
81+
}
82+
}

0 commit comments

Comments
 (0)