Skip to content

Commit d31bb17

Browse files
committed
Moved constants to LoggerProxy. Fixed issues with code convention. Added logAllQueries, logQueryTime and logCallStack parameters so they can be configured using the command.
1 parent 65f7b3c commit d31bb17

File tree

4 files changed

+77
-58
lines changed

4 files changed

+77
-58
lines changed

app/code/Magento/Developer/Console/Command/QueryLogDisableCommand.php

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
namespace Magento\Developer\Console\Command;
88

99
use Symfony\Component\Console\Command\Command;
10-
use Symfony\Component\Console\Input\InputArgument;
1110
use Symfony\Component\Console\Input\InputInterface;
1211
use Symfony\Component\Console\Output\OutputInterface;
1312
use Magento\Framework\App\DeploymentConfig\Writer;
1413
use Magento\Framework\Config\File\ConfigFilePool;
14+
use Magento\Framework\DB\Logger\LoggerProxy;
1515

1616
class QueryLogDisableCommand extends Command
1717
{
@@ -21,22 +21,21 @@ class QueryLogDisableCommand extends Command
2121
const COMMAND_NAME = 'dev:query-log:disable';
2222

2323
/**
24-
* File logger alias
24+
* @var Writer
2525
*/
26-
const QUIET_LOGGER_ALIAS = 'quiet';
26+
private $deployConfigWriter;
2727

2828
/**
29-
* @var Writer
29+
* QueryLogDisableCommand constructor.
30+
* @param Writer $deployConfigWriter
31+
* @param null $name
3032
*/
31-
private $deploymentConfigWriter;
32-
3333
public function __construct(
34-
Writer $deploymentConfigWriter,
34+
Writer $deployConfigWriter,
3535
$name = null
36-
)
37-
{
36+
) {
3837
parent::__construct($name);
39-
$this->deploymentConfigWriter = $deploymentConfigWriter;
38+
$this->deployConfigWriter = $deployConfigWriter;
4039
}
4140

4241
/**
@@ -56,9 +55,9 @@ protected function configure()
5655
*/
5756
protected function execute(InputInterface $input, OutputInterface $output)
5857
{
59-
$data = ['db_logger_alias' => 'quiet'];
60-
$this->deploymentConfigWriter->saveConfig([ConfigFilePool::APP_ENV => $data]);
58+
$data = [LoggerProxy::PARAM_ALIAS => LoggerProxy::LOGGER_ALIAS_DISABLED];
59+
$this->deployConfigWriter->saveConfig([ConfigFilePool::APP_ENV => $data]);
6160

6261
$output->writeln("<info>DB query logging disabled.</info>");
6362
}
64-
}
63+
}

app/code/Magento/Developer/Console/Command/QueryLogEnableCommand.php

Lines changed: 27 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
namespace Magento\Developer\Console\Command;
88

9+
use Magento\Framework\DB\Logger\LoggerProxy;
910
use Symfony\Component\Console\Command\Command;
1011
use Symfony\Component\Console\Input\InputArgument;
1112
use Symfony\Component\Console\Input\InputInterface;
@@ -36,25 +37,23 @@ class QueryLogEnableCommand extends Command
3637
const COMMAND_NAME = 'dev:query-log:enable';
3738

3839
/**
39-
* File logger alias
40+
* @var Writer
4041
*/
41-
const FILE_LOGGER_ALIAS = 'file';
42+
private $deployConfigWriter;
4243

4344
/**
44-
* @var Writer
45+
* QueryLogEnableCommand constructor.
46+
* @param Writer $deployConfigWriter
47+
* @param null $name
4548
*/
46-
private $deploymentConfigWriter;
47-
4849
public function __construct(
49-
Writer $deploymentConfigWriter,
50+
Writer $deployConfigWriter,
5051
$name = null
51-
)
52-
{
52+
) {
5353
parent::__construct($name);
54-
$this->deploymentConfigWriter = $deploymentConfigWriter;
54+
$this->deployConfigWriter = $deployConfigWriter;
5555
}
5656

57-
5857
/**
5958
* {@inheritdoc}
6059
*/
@@ -66,22 +65,22 @@ protected function configure()
6665
$this->addArgument(
6766
self::INPUT_ARG_LOG_ALL_QUERIES,
6867
InputArgument::OPTIONAL,
69-
'Log all queries.',
70-
'false'
68+
'Log all queries. Options: "true" or "false"',
69+
'true'
7170
);
7271

7372
$this->addArgument(
7473
self::INPUT_ARG_LOG_QUERY_TIME,
7574
InputArgument::OPTIONAL,
76-
'Query time.',
77-
'0.05'
75+
'Log query time.',
76+
'0.001'
7877
);
7978

8079
$this->addArgument(
8180
self::INPUT_ARG_LOG_CALL_STACK,
8281
InputArgument::OPTIONAL,
83-
'Log call stack.',
84-
'false'
82+
'Log call stack. Options: "true" or "false"',
83+
'true'
8584
);
8685

8786
parent::configure();
@@ -93,19 +92,18 @@ protected function configure()
9392
*/
9493
protected function execute(InputInterface $input, OutputInterface $output)
9594
{
96-
$data = ['db_logger_alias' => 'file'];
97-
$this->deploymentConfigWriter->saveConfig([ConfigFilePool::APP_ENV => $data]);
98-
99-
// $data = [
100-
// 'db_logger' => [
101-
// 'logger_alias' => 'file',
102-
// 'log_all_queries' => false,
103-
// 'log_query_time' => '0.05',
104-
// 'log_call_stack' => false,
105-
// ]
106-
// ];
107-
// $this->deploymentConfigWriter->saveConfig([ConfigFilePool::APP_ENV => $data]);
95+
$data = [LoggerProxy::PARAM_ALIAS => LoggerProxy::LOGGER_ALIAS_FILE];
96+
97+
$logAllQueries = $input->getArgument(self::INPUT_ARG_LOG_ALL_QUERIES);
98+
$logQueryTime = $input->getArgument(self::INPUT_ARG_LOG_QUERY_TIME);
99+
$logCallStack = $input->getArgument(self::INPUT_ARG_LOG_CALL_STACK);
100+
101+
$data[LoggerProxy::PARAM_LOG_ALL] = (int)($logAllQueries != 'false');
102+
$data[LoggerProxy::PARAM_QUERY_TIME] = number_format($logQueryTime,3);
103+
$data[LoggerProxy::PARAM_CALL_STACK] = (int)($logCallStack != 'false');
104+
105+
$this->deployConfigWriter->saveConfig([ConfigFilePool::APP_ENV => $data]);
108106

109107
$output->writeln("<info>DB query logging enabled.</info>");
110108
}
111-
}
109+
}

app/etc/di.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1321,6 +1321,10 @@
13211321
<type name="Magento\Framework\DB\Logger\LoggerProxy">
13221322
<arguments>
13231323
<argument name="loggerAlias" xsi:type="init_parameter">\Magento\Framework\DB\Logger\LoggerProxy::PARAM_ALIAS</argument>
1324+
<argument name="logAllQueries" xsi:type="init_parameter">\Magento\Framework\DB\Logger\LoggerProxy::PARAM_LOG_ALL</argument>
1325+
<argument name="logQueryTime" xsi:type="init_parameter">\Magento\Framework\DB\Logger\LoggerProxy::PARAM_QUERY_TIME</argument>
1326+
<argument name="logCallStack" xsi:type="init_parameter">\Magento\Framework\DB\Logger\LoggerProxy::PARAM_CALL_STACK</argument>
13241327
</arguments>
13251328
</type>
1329+
13261330
</config>

lib/internal/Magento/Framework/DB/Logger/LoggerProxy.php

Lines changed: 34 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,39 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6-
76
namespace Magento\Framework\DB\Logger;
87

98
class LoggerProxy extends LoggerAbstract
109
{
1110
/**
1211
* Logger alias param name
1312
*/
14-
const PARAM_ALIAS = 'db_logger_alias';
13+
const PARAM_ALIAS = 'db_logger_mode';
14+
15+
/**
16+
* Logger log all param name
17+
*/
18+
const PARAM_LOG_ALL = 'db_logger_all';
19+
20+
/**
21+
* Logger query time param name
22+
*/
23+
const PARAM_QUERY_TIME = 'db_logger_query_time';
24+
25+
/**
26+
* Logger call stack param name
27+
*/
28+
const PARAM_CALL_STACK = 'db_logger_stack';
1529

1630
/**
1731
* File logger alias
1832
*/
19-
const FILE_LOGGER_ALIAS = 'file';
33+
const LOGGER_ALIAS_FILE = 'file';
34+
35+
/**
36+
* Quiet logger alias
37+
*/
38+
const LOGGER_ALIAS_DISABLED = 'disabled';
2039

2140
/**
2241
* @var LoggerAbstract
@@ -25,28 +44,27 @@ class LoggerProxy extends LoggerAbstract
2544

2645
/**
2746
* LoggerProxy constructor.
28-
* @param FileFactory $loggerFileFactory
29-
* @param QuietFactory $loggerQuietFactory
47+
* @param File $file
48+
* @param Quiet $quiet
3049
* @param bool $loggerAlias
3150
* @param bool $logAllQueries
3251
* @param float $logQueryTime
3352
* @param bool $logCallStack
3453
*/
3554
public function __construct(
36-
FileFactory $loggerFileFactory,
37-
QuietFactory $loggerQuietFactory,
55+
File $file,
56+
Quiet $quiet,
3857
$loggerAlias,
39-
$logAllQueries = false,
40-
$logQueryTime = 0.05,
41-
$logCallStack = false
42-
)
43-
{
58+
$logAllQueries = true,
59+
float $logQueryTime = 0.001,
60+
$logCallStack = true
61+
) {
4462
switch ($loggerAlias) {
45-
case self::FILE_LOGGER_ALIAS:
46-
$this->logger = $loggerFileFactory->create();
63+
case self::LOGGER_ALIAS_FILE:
64+
$this->logger = $file;
4765
break;
4866
default:
49-
$this->logger = $loggerQuietFactory->create();
67+
$this->logger = $quiet;
5068
break;
5169
}
5270

@@ -84,4 +102,4 @@ public function critical(\Exception $e)
84102
{
85103
$this->logger->critical($e);
86104
}
87-
}
105+
}

0 commit comments

Comments
 (0)