作为程序员一定要保持良好的睡眠,才能好编程

laravel DB监听所有的sql输出

发布时间:2019-05-26



在App/Providers/ 目录下有一个 AppServiceProvider.php , 在里面的register 方法上,添加 下面代码:


<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider {
  /**
   * Register any application services.
   *
   * @return void
   */
  public function register() {
    //


    \DB::listen(function ($query) {
      $sql=$query->sql;
      $bindings=$query->bindings;
      $time=$query->time;

      \Log::debug(json_encode($query));
      \Log::debug(var_export(compact('sql','bindings','time'),true));

    });


  }

  /**
   * Bootstrap any application services.
   *
   * @return void
   */
  public function boot() {
    //
  }
}


通过上面的配置,就可以在storage/logs/ 的日志中,查看sql语句的输出情况了。