Magento 2: mencatat kueri lambat

10

Kembali di M1 Anda bisa mencatat kueri lambat dengan mengubah variabel berikut di 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';

Jadi saya bertanya-tanya bagaimana saya bisa melakukannya di M2? Saya sudah menemukan beberapa hal menarik dalam lib/internal/Magento/Framework/DB/Logger/LoggerAbstractserta lib/internal/Magento/Framework/DB/Logger/Filetapi saya tidak 100% yakin bagaimana untuk mengatasi ini.

Raphael di Digital Pianism
sumber

Jawaban:

14

app/etc/di.xml telah menetapkan preferensi berikut

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

Tambahkan modul Anda sendiri untuk mengubah preferensi ke file logger yang Anda sebutkan

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

Anda juga harus dapat mengubah params melalui yang sama 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>
Kristof di Fooman
sumber
Manis saya tahu itu akan melibatkan beberapa perubahan DI. Senang mendengarnya. Terima kasih banyak
Raphael di Digital Pianism
Hai, saya percaya bahwa "xsi: ketik" untuk argumen "logAllQueries" dan "logCallStack" harus "boolean" dan bukan "bool".
Andrew C. Stayart
Terima kasih @AndrewStayart - diperbaiki. Sepertinya 2.2 mungkin memiliki beberapa perubahan lagi di store github.com/magento/magento2/blob/2.2.0-preview/app/etc/…
Kristof di Fooman