文件路径 App\Providers\AppServiceProvider.php
在boot()方法中记录:
.env 配置文件中 APP_DEBUG=true
use Illuminate\Support\Facades\Log;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//
if (env('APP_DEBUG')) {
\DB::listen(function ($query) {
$tmp = str_replace('?', '"'.'%s'.'"', $query->sql);
$qBindings = [];
foreach ($query->bindings as $key => $value) {
if (is_numeric($key)) {
$qBindings[] = $value;
} else {
$tmp = str_replace(':'.$key, '"'.$value.'"', $tmp);
}
}
$tmp = vsprintf($tmp, $qBindings);
$tmp = str_replace("\\", "", $tmp);
//$query->time 是sql语句执行的时间
Log::info('execution time:'.$query->time.'ms; '.$tmp."\n\n\t");
});
}
}
}