जवाबों:
आप इसे 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>