Laravel框架中如何使用事件记录SQL查询到日志

时间:2021-10-12 03:57:43

在本文中,我们将说一下如何处理Laravel中的查询日志记录。如果你非常熟悉Laravel框架,Laravel可以选择将所有在当前请求中运行的查询记录在内存中。

查询记录

如果,你想要将日志文件保存在 storage/logs 目录中。需要更新: app/Providers/AppServiceProvider.php里的 boot() 函数。

 1 <?php
 2 
 3 namespace AppProviders;
 4 
 5 use IlluminateSupportServiceProvider;
 6 use DB;
 7 use Log;//使用Log门面模式
 8 
 9 class AppServiceProvider extends ServiceProvider
10 {
11     /**
12      * Bootstrap any application services.
13      *
14      * @return void
15      */
16     public function boot()
17     {
18         // 新增代码
19         DB::listen(function ($query) {
20             Log::info(
21                 $query->sql,
22                 $query->bindings,
23                 $query->time
24             );
25         });
26     }
27 
28     /**
29      * Register any application services.
30      *
31      * @return void
32      */
33     public function register()
34     {
35         //
36     }
37 }

这样我们就可以记录执行过的SQL语句了(记录到storage/logs目录),开发过程中也方便我们进行调试。

 

php中文网:https://www.php.cn/phpkj/laravel/407282.html