Skip to content

Commit 65f7b3c

Browse files
committed
Added console commands for enabling and disabling query logging
1 parent 25adbf7 commit 65f7b3c

File tree

3 files changed

+177
-0
lines changed

3 files changed

+177
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Developer\Console\Command;
8+
9+
use Symfony\Component\Console\Command\Command;
10+
use Symfony\Component\Console\Input\InputArgument;
11+
use Symfony\Component\Console\Input\InputInterface;
12+
use Symfony\Component\Console\Output\OutputInterface;
13+
use Magento\Framework\App\DeploymentConfig\Writer;
14+
use Magento\Framework\Config\File\ConfigFilePool;
15+
16+
class QueryLogDisableCommand extends Command
17+
{
18+
/**
19+
* command name
20+
*/
21+
const COMMAND_NAME = 'dev:query-log:disable';
22+
23+
/**
24+
* File logger alias
25+
*/
26+
const QUIET_LOGGER_ALIAS = 'quiet';
27+
28+
/**
29+
* @var Writer
30+
*/
31+
private $deploymentConfigWriter;
32+
33+
public function __construct(
34+
Writer $deploymentConfigWriter,
35+
$name = null
36+
)
37+
{
38+
parent::__construct($name);
39+
$this->deploymentConfigWriter = $deploymentConfigWriter;
40+
}
41+
42+
/**
43+
* {@inheritdoc}
44+
*/
45+
protected function configure()
46+
{
47+
$this->setName(self::COMMAND_NAME)
48+
->setDescription('Disable DB query logging');
49+
50+
parent::configure();
51+
}
52+
53+
/**
54+
* {@inheritdoc}
55+
* @throws \InvalidArgumentException
56+
*/
57+
protected function execute(InputInterface $input, OutputInterface $output)
58+
{
59+
$data = ['db_logger_alias' => 'quiet'];
60+
$this->deploymentConfigWriter->saveConfig([ConfigFilePool::APP_ENV => $data]);
61+
62+
$output->writeln("<info>DB query logging disabled.</info>");
63+
}
64+
}
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\Developer\Console\Command;
8+
9+
use Symfony\Component\Console\Command\Command;
10+
use Symfony\Component\Console\Input\InputArgument;
11+
use Symfony\Component\Console\Input\InputInterface;
12+
use Symfony\Component\Console\Output\OutputInterface;
13+
use Magento\Framework\App\DeploymentConfig\Writer;
14+
use Magento\Framework\Config\File\ConfigFilePool;
15+
16+
class QueryLogEnableCommand extends Command
17+
{
18+
/**
19+
* input parameter log-all-queries
20+
*/
21+
const INPUT_ARG_LOG_ALL_QUERIES = 'log-all-queries';
22+
23+
/**
24+
* input parameter log-query-time
25+
*/
26+
const INPUT_ARG_LOG_QUERY_TIME = 'log-query-time';
27+
28+
/**
29+
* input parameter log-call-stack
30+
*/
31+
const INPUT_ARG_LOG_CALL_STACK = 'log-call-stack';
32+
33+
/**
34+
* command name
35+
*/
36+
const COMMAND_NAME = 'dev:query-log:enable';
37+
38+
/**
39+
* File logger alias
40+
*/
41+
const FILE_LOGGER_ALIAS = 'file';
42+
43+
/**
44+
* @var Writer
45+
*/
46+
private $deploymentConfigWriter;
47+
48+
public function __construct(
49+
Writer $deploymentConfigWriter,
50+
$name = null
51+
)
52+
{
53+
parent::__construct($name);
54+
$this->deploymentConfigWriter = $deploymentConfigWriter;
55+
}
56+
57+
58+
/**
59+
* {@inheritdoc}
60+
*/
61+
protected function configure()
62+
{
63+
$this->setName(self::COMMAND_NAME)
64+
->setDescription('Enable DB query logging');
65+
66+
$this->addArgument(
67+
self::INPUT_ARG_LOG_ALL_QUERIES,
68+
InputArgument::OPTIONAL,
69+
'Log all queries.',
70+
'false'
71+
);
72+
73+
$this->addArgument(
74+
self::INPUT_ARG_LOG_QUERY_TIME,
75+
InputArgument::OPTIONAL,
76+
'Query time.',
77+
'0.05'
78+
);
79+
80+
$this->addArgument(
81+
self::INPUT_ARG_LOG_CALL_STACK,
82+
InputArgument::OPTIONAL,
83+
'Log call stack.',
84+
'false'
85+
);
86+
87+
parent::configure();
88+
}
89+
90+
/**
91+
* {@inheritdoc}
92+
* @throws \InvalidArgumentException
93+
*/
94+
protected function execute(InputInterface $input, OutputInterface $output)
95+
{
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]);
108+
109+
$output->writeln("<info>DB query logging enabled.</info>");
110+
}
111+
}

app/code/Magento/Developer/etc/di.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@
9898
<item name="xml_converter" xsi:type="object">Magento\Developer\Console\Command\XmlConverterCommand</item>
9999
<item name="xml_catalog_generator" xsi:type="object">Magento\Developer\Console\Command\XmlCatalogGenerateCommand</item>
100100
<item name="dev_di_info" xsi:type="object">Magento\Developer\Console\Command\DiInfoCommand</item>
101+
<item name="dev_query_log_enable" xsi:type="object">Magento\Developer\Console\Command\QueryLogEnableCommand</item>
102+
<item name="dev_query_log_disable" xsi:type="object">Magento\Developer\Console\Command\QueryLogDisableCommand</item>
101103
</argument>
102104
</arguments>
103105
</type>

0 commit comments

Comments
 (0)