Magento 2: rejestruj wolne zapytania

10

Z powrotem w M1 można rejestrować wolne zapytania, modyfikując następujące zmienne w 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';

Zastanawiam się więc, jak mogę to zrobić w M2? Znalazłem kilka ciekawych rzeczy w lib/internal/Magento/Framework/DB/Logger/LoggerAbstractjak również lib/internal/Magento/Framework/DB/Logger/File, ale nie jest w 100% pewien, jak uporać się z tym.

Raphael at Digital Pianism
źródło

Odpowiedzi:

14

app/etc/di.xml ma następujący zestaw preferencji

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

Dodaj własny moduł, aby zmienić preferencje rejestratora plików, o którym wspomniałeś

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

Powinieneś być również w stanie zmienić parametry za pomocą tego samego 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 w Fooman
źródło
Słodko wiedziałem, że będzie to wymagało pewnych zmian DI. Dobrze wiedzieć.
Wielkie
Cześć, uważam, że argument „xsi: type” dla argumentów „logAllQueries” i „logCallStack” powinien mieć wartość „boolean”, a nie „bool”.
Andrew C. Stayart
Dzięki @AndrewStayart - naprawione. Wygląda na to, że 2.2 może mieć więcej zmian w sklepie github.com/magento/magento2/blob/2.2.0-preview/app/etc/…
Kristof at Fooman