W magento 1.x używam tego n98-magerun
narzędzia, aby uzyskać plik dziennika dla wszystkich zapytań DB:
n98-magerun.phar dev:log:db [--on] [--off]
Czy można rejestrować zapytania do bazy danych w Magento2?
możesz dodać w di.xml
pliku jeden z modułów :
<preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\File"/>
Magento\Framework\DB\Adapter\Pdo\Mysql
Klasa, która służy do uruchamiania rzeczywistych zapytań ma człon rejestratora Magento\Framework\DB\LoggerInterface
.
Domyślnie preferencje dla tej zależności są ustawione naapp/etc/di.xml
<preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\Quiet"/>
to Magento\Framework\DB\Logger\Quiet
nic nie robi.
<?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()
{
}
}
zmień preferencje na Magento\Framework\DB\Logger\File
i powinieneś zobaczyć zalogowane zapytania var/debug/db.log
.
Magento jest standardowo wyposażony w te dwa rejestratory (cichy i plikowy), ale możesz je utworzyć na wypadek, gdybyś potrzebował innego sposobu rejestrowania zapytań.
logAllQueries=true
zanim zostaną zalogowani do pliku - atwix.com/magento-2/database-queries-loggingLoggerInterface
jest implementowany przezLoggerProxy
, a nieLogger\Quiet
, który z kolei pobiera parametry z konfiguracji wdrażania. Zobacz odpowiedź @ Felixa ( magento.stackexchange.com/a/201517/60128 ).Przynajmniej w nowszych wersjach (patrząc na 2.2.1 tu i teraz) możesz to zrobić
i loguj się szeroko
var/debug/db.log
. Nie zapomnij ponownie wylogować się za pomocą.
źródło
Aby ustawić
logAllQueries=true
, możesz dodać następujący kod wapp/etc/di.xml
celu zmiany__construct()
parametrówMagento\Framework\DB\Logger\File
:Można również zmienić inne parametry
$debugFile
,$logQueryTime
i$logCallStack
w ten sposób.źródło
Oto mój plik di.xml
źródło