Risposte:
puoi aggiungere in uno dei tuoi moduli nel di.xml
file questo:
<preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\File"/>
La Magento\Framework\DB\Adapter\Pdo\Mysql
classe utilizzata per eseguire le query effettive ha un membro logger Magento\Framework\DB\LoggerInterface
.
Per impostazione predefinita, è impostata la preferenza per questa dipendenzaapp/etc/di.xml
<preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\Quiet"/>
questo Magento\Framework\DB\Logger\Quiet
non fa nulla.
<?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()
{
}
}
cambia la preferenza in Magento\Framework\DB\Logger\File
e dovresti vedere le query registrate var/debug/db.log
.
Magento viene fornito con questi 2 logger (Quiet e File) compra predefiniti, ma puoi crearne uno tuo nel caso in cui sia necessario un modo diverso di registrare le query.
logAllQueries=true
prima che fossero registrati su file - atwix.com/magento-2/database-queries-logging
LoggerInterface
è implementato da LoggerProxy
, non Logger\Quiet
, che a sua volta prende i parametri dalla configurazione di distribuzione. Vedi la risposta di @Felix ( magento.stackexchange.com/a/201517/60128 ).
Per impostare logAllQueries=true
è possibile aggiungere il seguente codice app/etc/di.xml
per modificare i __construct()
parametri di 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>
Puoi anche cambiare gli altri parametri $debugFile
, $logQueryTime
e $logCallStack
in quel modo.
Ecco il mio 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>