답변:
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 개의 로거 (Quiet 및 File) 구매가 제공되지만 쿼리 로깅에 다른 방법이 필요한 경우 직접 만들 수 있습니다.
LoggerInterface는로 구성 LoggerProxy되지 않으며 Logger\Quiet, 배치 구성에서 매개 변수를 가져옵니다. @Felix 의 답변 ( 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>