В magento 1.x я использую n98-magerun
инструмент, чтобы получить файл журнала для всех запросов к БД:
n98-magerun.phar dev:log:db [--on] [--off]
Можно ли регистрировать запросы к базе данных в Magento2?
Вы можете добавить в один из ваших модулей в di.xml
файле это:
<preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\File"/>
У Magento\Framework\DB\Adapter\Pdo\Mysql
класса, который используется для выполнения реальных запросов, есть член регистратора Magento\Framework\DB\LoggerInterface
.
По умолчанию предпочтение этой зависимости устанавливается вapp/etc/di.xml
<preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\Quiet"/>
это Magento\Framework\DB\Logger\Quiet
ничего не делает
<?php
/**
* Copyright © 2015 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Framework\DB\Logger;
class Quiet implements \Magento\Framework\DB\LoggerInterface
{
/**
* {@inheritdoc}
*/
public function log($str)
{
}
/**
* {@inheritdoc}
*/
public function logStats($type, $sql, $bind = [], $result = null)
{
}
/**
* {@inheritdoc}
*/
public function critical(\Exception $e)
{
}
/**
* {@inheritdoc}
*/
public function startTimer()
{
}
}
измените предпочтение на, Magento\Framework\DB\Logger\File
и вы должны увидеть запросы, вошедшие в систему var/debug/db.log
.
Magento поставляется с этими 2 регистраторами (Quiet и File) по умолчанию, но вы можете создать свой собственный, если вам нужен другой способ регистрации запросов.
logAllQueries=true
прежде чем они были зарегистрированы в файл - atwix.com/magento-2/database-queries-loggingLoggerInterface
реализуетсяLoggerProxy
, а неLogger\Quiet
, что, в свою очередь, принимает параметры из конфигурации развертывания. См. Ответ @ Феликса ( magento.stackexchange.com/a/201517/60128 ).По крайней мере, в более новых версиях (глядя на 2.2.1 здесь и сейчас) вы можете сделать
и иметь обширные входы в систему
var/debug/db.log
. Не забудьте снова выйти из системы с помощью,
источник
Для настройки
logAllQueries=true
вы можете добавить следующий кодapp/etc/di.xml
для изменения__construct()
параметровMagento\Framework\DB\Logger\File
:Вы также можете изменить другие параметры
$debugFile
,$logQueryTime
и$logCallStack
таким образом.источник
Вот мой di.xml
источник