listen-sql 一个在控制台看到实时 sql 操作的工具
在 Laravel 中打印 sql,以往的做法往往是,通过 DB::listen
监听,然后通过 Log::info
写入到 log 中。
这样写入的 log,我们想查看往往是去 storage 文件夹下找到当天的 log 文件,然后打开。有个不好的地方是,如果在编辑器打开,往往不会实时更新。请求完之后,可能需要切到其他 tab 再切换回来才会更新。同时,太多的 sql 日志会和其他 log 混杂在一起,会显得有些混乱。
除此之外,也可以 tail -f storage/logs/xx.log
来实时查看
log 的输出。这样有个不好的地方是,如果在 config/app.php
定义了 log => 'daily'
,每天都要输入一个新的文件名。
现在,我们可以只使用一个命令来实现监听应用里的 sql 操作。
安装
1.通过 composer 安装 (eleven26/listen-sql)。
1 | composer require "eleven26/listen-sql:~1.0.2" |
2.注册 Service Provider
Laravel
: 修改文件config/app.php
,Laravel 5.5+
不需要1
2
3
4'providers' => [
//...
Eleven26\ListenSql\ListenSqlServiceProvider::class,
],Lumen
: 修改文件bootstrap/app.php
1
$app->register(Eleven26\ListenSql\ListenSqlServiceProvider::class);
使用
1 | php artisan listen-sql:start |
到这一步,去页面刷新的时候,就可以在控制台看到 sql
语句了