Magento 2: registro de consultas lentas

10

De vuelta en M1, puede registrar las consultas lentas modificando las siguientes variables en 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';

¿Entonces me pregunto cómo puedo hacer eso en M2? También encontré algunas cosas interesantes lib/internal/Magento/Framework/DB/Logger/LoggerAbstract, lib/internal/Magento/Framework/DB/Logger/Filepero no estoy 100% seguro de cómo abordar esto.

Raphael en Digital Pianism
fuente

Respuestas:

14

app/etc/di.xml tiene el siguiente conjunto de preferencias

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

Agregue su propio módulo para cambiar la preferencia al registrador de archivos que mencionó

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

También debería poder cambiar los parámetros a través de la misma 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 en Fooman
fuente
Dulce, sabía que implicaría algunos cambios DI. Bueno saber. Muchas gracias
Raphael en Digital Pianism
Hola, creo que el "xsi: type" para los argumentos "logAllQueries" y "logCallStack" debe ser "booleano" y no "bool".
Andrew C. Stayart
Gracias @ AndrewStayart - arreglado. Parece que 2.2 podría tener algunos cambios más en la tienda github.com/magento/magento2/blob/2.2.0-preview/app/etc/…
Kristof en Fooman