SQLの発行履歴を別ファイルのログに保存する [Laravel]
Laravelで開発環境時に実行したSQLの履歴をstorage\logs\laravel.logとは別にstorage\logs\sql.logに保存する方法です。
storage\logs\sql.logの例
ソースコード
app\Providers\AppServiceProvider.php
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { public function register() { } public function boot() { // デバッグ環境のみSQLログを出力する if (config('app.env') !== 'production') { \DB::listen(function ($query) { $fp = fopen(storage_path('logs/sql.log'), "a"); try{ fwrite($fp, date("Y-m-d H:i:s") . " 実行時間({$query->time}s) {$query->sql}\n"); }finally{ fclose($fp); } }); } } }
最初は必要と思ったんですが、やってみると不要かも知れない(笑)
スポンサーリンク
関連記事
公開日:2020年11月16日
記事NO:02850