Di magento 1.x saya menggunakan n98-magerun
alat ini untuk mendapatkan file log untuk semua Permintaan DB:
n98-magerun.phar dev:log:db [--on] [--off]
Apakah mungkin untuk mencatat kueri basis data di Magento2?
Anda dapat menambahkan salah satu modul Anda di di.xml
file ini:
<preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\File"/>
The Magento\Framework\DB\Adapter\Pdo\Mysql
kelas yang digunakan untuk menjalankan query yang sebenarnya memiliki anggota logger Magento\Framework\DB\LoggerInterface
.
Secara default, preferensi untuk ketergantungan ini ditetapkanapp/etc/di.xml
<preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\Quiet"/>
ini Magento\Framework\DB\Logger\Quiet
tidak melakukan apa-apa.
<?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()
{
}
}
ubah preferensi menjadi Magento\Framework\DB\Logger\File
dan Anda akan melihat kueri masuk var/debug/db.log
.
Magento hadir dengan 2 penebang ini (Tenang dan File) default pembelian, tetapi Anda dapat membuatnya sendiri jika Anda membutuhkan cara lain untuk mencatat kueri.
logAllQueries=true
sebelum mereka login ke file - atwix.com/magento-2/database-queries-loggingLoggerInterface
diimplementasikan olehLoggerProxy
, bukanLogger\Quiet
, yang pada gilirannya mengambil parameter dari konfigurasi penempatan. Lihat jawaban @ Felix ( magento.stackexchange.com/a/201517/60128 ).Setidaknya dalam versi yang lebih baru (melihat 2.2.1 di sini dan sekarang) yang dapat Anda lakukan
dan memiliki log yang luas
var/debug/db.log
. Jangan lupa mematikan log lagi dengan.
sumber
Untuk mengatur
logAllQueries=true
Anda dapat menambahkan kode berikutapp/etc/di.xml
untuk mengubah__construct()
parameterMagento\Framework\DB\Logger\File
:Anda juga dapat mengubah parameter lainnya
$debugFile
,$logQueryTime
dan$logCallStack
dengan cara itu.sumber
Inilah di.xml saya
sumber