Magento 2:遅いクエリをログに記録する


10

M1に戻ると、次の変数を変更することで、遅いクエリをログに記録できますlib/Varien/Db/Adapter/Pdo/Mysql.php

/**
  * Write SQL debug data to file
  *
  * @var bool
  */
 protected $_debug               = false;
 /**
  * Minimum query duration time to be logged
  *
  * @var unknown_type
  */
 protected $_logQueryTime        = 0.05;
 /**
  * Log all queries (ignored minimum query duration time)
  *
  * @var bool
  */
 protected $_logAllQueries       = false;
 /**
  * Add to log call stack data (backtrace)
  *
  * @var bool
  */
 protected $_logCallStack        = false;
 /**
  * Path to SQL debug data log
  *
  * @var string
  */
 protected $_debugFile           = 'var/debug/sql.txt';

だから私はどうすればM2でそれを行うことができるのでしょうか?私は、いくつかの興味深いものを見つけたlib/internal/Magento/Framework/DB/Logger/LoggerAbstractだけでなく、lib/internal/Magento/Framework/DB/Logger/File私はこれに取り組む方法は100%確実ではないです。

回答:


14

app/etc/di.xml 次のプリファレンスセットがあります

<preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\Quiet"/>

独自のモジュールを追加して、あなたが言及したファイルロガーの設定を変更します

<preference for="Magento\Framework\DB\LoggerInterface" type="Magento\Framework\DB\Logger\File"/>

同じ経由でパラメータを変更することもできるはずです di.xml

<type name="Magento\Framework\DB\Logger\File">
    <arguments>
        <argument name="debugFile" xsi:type="string">debug/db-custom.log</argument>
        <argument name="logAllQueries" xsi:type="boolean">false</argument>
        <argument name="logQueryTime" xsi:type="number">0.01</argument>
        <argument name="logCallStack" xsi:type="boolean">false</argument>
    </arguments>
</type>

SweetいくつかのDIの変更が含まれることを知っていました。知ってよかった。
どうも

こんにちは、引数「logAllQueries」と「logCallStack」の「xsi:type」は「ブール」ではなく「ブール」である必要があると思います。
Andrew C. Stayart 2017

ありがとう@AndrewStayart-修正済み。2.2のように見えますストアgithub.com/magento/magento2/blob/2.2.0-preview/app/etc/…に
Kristof at Fooman
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.