How to log all Magento 2 SQL queries?

In your app/etc/di.xml, replace the line:

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

with

<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">log/sql.log</argument>
  </arguments>
</type>

Flush Magento cache (in backend, or by executing bin/magento cache:flush) after this.

Log file is located here: var/log/sql.log


bin/magento dev:query-log:enable

. (copied my answer from Magento 2 log database queries)


Alternative (to the answer of Siju Joseph),

if you don't want to change your magento config, you can also configure mysql itself: activate slow.log and set it to 0 seconds.

Therefore edit /etc/mysql/my.cnf and set slow_query_log to 'on' and long_query_time to '0'.

This will result in all mysql queries getting logged.