SQL が発行されるたびに Log ファサードを利用して SQLログを書き出してみます。
Laravel のLogファサードの仕様は以下を参照してください。
https://readouble.com/laravel/7.x/ja/logging.html
プロバイダは、AppServiceProvider に登録しても良いですが、今回はカスタムで LogSqlServiceProvider を作成します。
app/Providers/LogSqlServiceProvider.php が作成されているのを確認します。
config/app.php の providers に LogSqlServiceProvider を登録します。
app/Providers/LogSqlServiceProvider.php の register() に記述します。
App::environment() で現在の環境を取得し、任意に設定した SQL_LOG_ENVIROMENT の場合に、ログを書き出します。
環境による設定は、.env の boolean で設定しても良いかも知れません。
config/logging.php で設定でき、デフォルト「storage/logs/larave.log」となります。
Log::debug() の場合、デフォルトで single チャンネルで書き出されるため、Log::channel('チャンネル名')で、SQL用のログを設定します。
(内部的に、Illuminate\Log\LogManagerクラスで、driver() に設定される模様)
またロガーは RFC 5424 の以下の8つのログレベルを提供しています。
Logファサードは、最終的にPsr\Log\LoggerInterface を実装した Monolog\Logger を利用しています。