1.环境情况
2.代码情况
controller:
中间件:
3.情况描述
第一次请求
第二次请求
第三次请求
第四次请求
问题:
感觉就是
\Illuminate\Database\Events\QueryExecuted $query
会记录当前连接的所有SQL,因为当前进程的MySQL链接不会断开,每次打印SQL,会把之前所有请求的SQL都打印出来
如果想只打印当前请求的SQL,应该如何处理?
文档中ARMS监控,也有这样的代码
不知道是否也会出现类似的问题
因为每次请求都执行中间件,都会加一个监听,所以就会有重复的监听,会重复打印。
这个监听不适合放在中间件,适合放在进程启动项。
新建
app/bootstrap/Report.php
(目录不存在时自行创建)打开
config/bootstrap.php
添加如下配置<?php
以上两步就完成了进程启动时设置SQL监听。
非常感谢,那文档中ARMS部分中,在中间件添加的那段监听,是不是也需要放到进程启动时?
那个有做判断,只会初始化一次
我按你的代码设置,在homestead环境php8.0下,监听不成功。