为Laravel添加SQL执行日志(SQL Log)

前言

Laravel默认是不会记录SQL执行日志的,但在实际开发调试过程中经常会遇到想要看看最终执行的SQL是怎样的这种需求,此时就需要打印SQL到日志中了。

开启SQL Log

AppServiceProviderboot()方法中加入下面语句:

  1. class AppServiceProvider extends ServiceProvider
  2. {
  3. /**
  4. * Bootstrap any application services.
  5. *
  6. * @return void
  7. */
  8. public function boot()
  9. {
  10. if(env('APP_DEBUG')) {
  11. DB::listen(function($query) {
  12. Log::info(
  13. $query->sql,
  14. $query->bindings,
  15. $query->time
  16. );
  17. });
  18. }
  19. //...
  20. }
  21. }