在Laravel中使用事件记录SQL查询到日志

2020-08-13 18:21:20
在本文中,我们将讨论如何处理Laravel中的查询日志记录。 假设你在阅读本文时已经非常熟悉Laravel。 Laravel可以选择将所有在当前请求中运行的查询记录在内存中。 有一些方法可用于此。

查询记录

如果,你想要将日志文件保存在 storage/logs 目录中。

需要更新: app/Providers/AppServiceProvider.php 里的 boot() 函数。

<?phpnamespace AppProviders;use IlluminateSupportServiceProvider;use DB;class AppServiceProvider extends ServiceProvider{    /**     * Bootstrap any application services.     *     * @return void     */    public function boot()    {        // 新增代码        DB::listen(function($query) {            Log::info(                $query->sql,                $query->bindings,                $query->time            );        });    }    /**     * Register any application services.     *     * @return void     */    public function register()    {        //    }}

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