Respuestas:
Puede agregar en uno de sus módulos en el di.xml
archivo esto:
<preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\File"/>
La Magento\Framework\DB\Adapter\Pdo\Mysql
clase que se utiliza para ejecutar las consultas reales tiene un miembro registrador Magento\Framework\DB\LoggerInterface
.
De forma predeterminada, la preferencia para esta dependencia se establece enapp/etc/di.xml
<preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\Quiet"/>
Esto Magento\Framework\DB\Logger\Quiet
no hace nada.
<?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()
{
}
}
cambie la preferencia a Magento\Framework\DB\Logger\File
y debería ver las consultas iniciadas var/debug/db.log
.
Magento viene con estos 2 registradores (Quiet y File) que compran por defecto, pero puede crear los suyos propios en caso de que necesite una forma diferente de registrar consultas.
logAllQueries=true
antes de que se registraran en el archivo - atwix.com/magento-2/database-queries-logging
LoggerInterface
se implementa por LoggerProxy
, no Logger\Quiet
, que a su vez toma parámetros de la configuración de implementación. Ver la respuesta de @ Felix ( magento.stackexchange.com/a/201517/60128 ).
Para configurar logAllQueries=true
puede agregar el siguiente código app/etc/di.xml
para cambiar los __construct()
parámetros de Magento\Framework\DB\Logger\File
:
<preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\File"/>
<type name="Magento\Framework\DB\Logger\File">
<arguments>
<argument name="logAllQueries" xsi:type="boolean">true</argument>
</arguments>
</type>
También puede cambiar los otros parámetros $debugFile
, $logQueryTime
y $logCallStack
de esa manera.
Aquí está mi di.xml
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\File"/>
<type name="Magento\Framework\DB\Logger\File">
<arguments>
<argument name="logAllQueries" xsi:type="boolean">true</argument>
<argument name="debugFile" xsi:type="string">sql.log</argument>
</arguments>
</type>
</config>