जवाबों:
आप इसे di.xmlफ़ाइल में अपने किसी एक मॉड्यूल में जोड़ सकते हैं :
<preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\File"/>
Magento\Framework\DB\Adapter\Pdo\Mysqlवास्तविक प्रश्नों को चलाने के लिए जिस वर्ग का उपयोग किया जाता है, उसमें एक लकड़हारा सदस्य होता है Magento\Framework\DB\LoggerInterface।
डिफ़ॉल्ट रूप से, इस निर्भरता के लिए प्राथमिकता सेट की गई हैapp/etc/di.xml
<preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\Quiet"/>
यह Magento\Framework\DB\Logger\Quietकुछ नहीं करता है।
<?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()
{
}
}
प्राथमिकता को बदलें Magento\Framework\DB\Logger\Fileऔर आपको लॉग इन प्रश्नों को देखना चाहिए var/debug/db.log।
Magento इन 2 लॉगर के साथ आता है (शांत और फ़ाइल) डिफ़ॉल्ट रूप से खरीदता है, लेकिन यदि आप लॉगिंग क्वेरी के एक अलग तरीके की आवश्यकता है तो आप अपना खुद का बना सकते हैं।
logAllQueries=trueइससे पहले कि वे फाइल करने के लिए लॉग इन थे - atwix.com/magento-2/database-queries-logging
LoggerInterfaceद्वारा लागू किया जाता है LoggerProxy, नहीं Logger\Quiet, जो बदले में तैनाती कॉन्फ़िगरेशन से पैरामीटर लेता है। @ फेलिक्स का उत्तर ( magento.stackexchange.com/a/201517/60128 ) देखें।
सेट करने के लिए logAllQueries=trueआप के लिए निम्न कोड जोड़ सकते हैं app/etc/di.xmlबदलने के लिए __construct()के मापदंडों 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>
आप अन्य मापदंडों को भी बदल सकते हैं $debugFile, $logQueryTimeऔर $logCallStackइस तरह से।
यहाँ मेरा 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>