SQL 查询日志和慢日志

未匹配的标注

app/Providers/AppServiceProvider.php

public function boot()
    {
        if (config('app.env') === 'local') {
            // 打印 SQL 语句
            DB::listen(function ($query): void {
                Log::debug('DB: '.$query->sql.'['.implode(',', $query->bindings).']');
            });
            // 慢日志
            DB::listen(function ($query) {
                if ($query->time >= 100) {
                    $location = collect(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS))->filter(function ($trace) {
                        if (isset($trace['file'])) {
                            return ! str_contains($trace['file'], 'vendor/');
                        }

                        return false;
                    })->first();

                    $bindings = implode(', ', $query->bindings); // format the bindings as string

                    Log::info("
Sql: $query->sql
Bindings: $bindings
Time: $query->time
File: {$location['file']}
Line: {$location['line']}");
                }
            });
        }
    }

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~