ホームページ >バックエンド開発 >PHPチュートリアル >Laravel 5 で DB::getQueryLog() が空の配列を返すのはなぜですか?
Laravel 5 でのクエリ実行ログの取得: DB::getQueryLog() の空の配列の解決
実行されたクエリのログを表示しようとしたとき、開発者は DB::getQueryLog() からの空の配列の戻り値に遭遇する可能性があります。これに対処するには、まずクエリ ログを有効にすることが重要です。メモリ使用量を最適化するために、Laravel 5 ではデフォルトで無効になっています。
クエリ ログの有効化
DB::enableQueryLog();
DB::connection('my_connection')->enableQueryLog();
クエリを取得していますログ
有効にすると、次のコマンドを使用してクエリ ログを取得できます。
print_r(DB::getQueryLog());
ミドルウェアアプローチ
有効にするにはHTTP リクエストのライフサイクル中のみのクエリ ロギング:
class LogQueryMiddleware { public function handle($request, Closure $next) { DB::enableQueryLog(); $response = $next($request); dd(DB::getQueryLog()); // Log queries here return $response; } } // Add the middleware to the app app()->middleware([LogQueryMiddleware::class]);
アーティザン コマンド ロギング
ミドルウェア チェーンが実行されないアーティザン コマンドの場合:
// In bootstrap/app.php app()->events->listen('artisan.start', function() { DB::enableQueryLog(); });
メモリ管理
過剰なクエリはメモリの問題を引き起こす可能性があります。デバッグ目的でのみクエリ ログを有効にすることをお勧めします。
if (app()->environment('local')) { DB::enableQueryLog(); }
これらの手順に従うことで、開発者はクエリ ログを効果的に表示し、アプリケーションのデータベース インタラクションに関する貴重な洞察を得ることができます。
以上がLaravel 5 で DB::getQueryLog() が空の配列を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。