En magento 1.x utilizo la n98-magerun
herramienta para obtener un archivo de registro para todas las consultas DB:
n98-magerun.phar dev:log:db [--on] [--off]
¿Es posible registrar consultas de bases de datos en Magento2?
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-loggingLoggerInterface
se implementa porLoggerProxy
, noLogger\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 ).Al menos en versiones más recientes (mirando un 2.2.1 aquí y ahora) puede hacer
y tienen registros extensos
var/debug/db.log
. No olvides volver a cerrar sesión con.
fuente
Para configurar
logAllQueries=true
puede agregar el siguiente códigoapp/etc/di.xml
para cambiar los__construct()
parámetros deMagento\Framework\DB\Logger\File
:También puede cambiar los otros parámetros
$debugFile
,$logQueryTime
y$logCallStack
de esa manera.fuente
Aquí está mi di.xml
fuente