一、效果图
二、功能点:
1。当前请求的路由
2。当前请求的参数
3。当前一次请求运行的SQL,及SQL的运行时间。
上面三点包含我们在本地环境开发过程中必备的基本调式信息。
三,实现:
1。开发运行环境的配置
1.1打开.env文件,增加开关,建议开发环境设置为真的,生产环境设置为假 APP_DEBUG=true 1.2设置日志级别 APP_LOG_LEVEL=调试 1.3增加打印sql开关配置 打开配置目录的任意配置文件,我这里将配置防到database.php中 & # 39;sql_debug& # 39;,=祝辞,env (& # 39; APP_DEBUG& # 39;),
2。实现打印请求路由及参数
打开App \ Http \控制器\ Controller.php文件 增加构造方法: public function  __construct (Request 美元请求) { ,,,if (env (& # 39; APP_DEBUG& # 39;)), { ,,,,,,,\日志:调试(“\ n \ n"); ,,,,,,,\日志:调试(& # 39;请求路由:& # 39;,只请求→美元url ()); ,,,,,,,requestParameters 美元;=,请求→美元(); ,,,,,,,if (!空(requestParameters美元)),{ ,,,,,,,,,,,\日志:调试(& # 39;请求参数:& # 39;,只var_export (requestParameters美元,,真的)); ,,,,,,,},{else ,,,,,,,,,,,\日志:调试(& # 39;请求参数:无& # 39;); ,,,,,,,} ,,,},,,, }
3。实现打印运行的SQL语句
打开应用\ \ AppServiceProvider提供者; 引导方法中增加DB监听 public function 引导() { ,,,//sql调试 ,,,sql_debug 美元;=,配置(& # 39;database.sql_debug& # 39;);//注意这里获取开关配置 ,,,if (sql_debug美元),{ ,,,,,,,DB::听(function ($ sql), { ,,,,,,,,,,,foreach (sql→美元bindings as 小姐:美元=祝辞,美元绑定),{ ,,,,,,,,,,,,,,,if (binding 美元;instanceof  \ DateTime), { ,,,,,,,,,,,,,,,,,,,sql→美元绑定[$ i],=,美元绑定→格式(& # 39;\ & # 39;Y-m-d H:我:s \ & # 39; & # 39;); ,,,,,,,,,,,,,,,},{else ,,,,,,,,,,,,,,,,,,,if (is_string(绑定)美元),{ ,,,,,,,,,,,,,,,,,,,,,,,sql→美元绑定[$ i],=,“& # 39;美元绑定# 39;“; ,,,,,,,,,,,,,,,,,,,} ,,,,,,,,,,,,,,,} ,,,,,,,,,,,} ,,,,,,,,,,,query 美元;=,str_replace(数组(& # 39;% & # 39;,,& # 39;? & # 39;),,数组(& # 39;% % & # 39;,,& # 39;% & # 39;),,sql→美元sql); ,,,,,,,,,,,query 美元;=,函数(查询,美元,美元sql→绑定); ,,,,,,,,,,,\日志:调试(& # 39;运行SQL: & # 39;,只查询美元); ,,,,,,,,,,,\日志:调试(& # 39;运行耗时:& # 39;,只sql→美元time 只& # 39;,女士# 39;); ,,,,,,,}); ,,,} }
四、验证并使用
终端下进到项目根目录,运行日志追踪命令
tail -f 。/存储/logs/laravel.log