Laravel 框架的优雅调试助手 Laravel Telescope

介绍

Laravel Telescope 是 Laravel 框架的优雅调试助手。Telescope 可深入了解进入应用程序的请求,异常,日志条目,数据库查询,排队作业,邮件,通知,缓存操作,计划任务,变量转储等。Telescope 是您本地 Laravel 开发环境的绝佳伴侣

安装

composer require laravel/telescope
php artisan telescope:install
php artisan migrate

Laravel 框架的优雅调试助手 Laravel Telescope

访问

直接访问 域名/telescope就可以看到 Telescope 的界面了。

Laravel 框架的优雅调试助手 Laravel Telescope

权限 403

  • 因项目在本地环境跑, APP_ENV=local,用户可以随便访问这个界面

  • 如果你使用 laravel 作为 api 应用程序 修改App\Providers\TelescopeServiceProvider.php

      /**
       * Register the Telescope gate.
       *
       * This gate determines who can access Telescope in non-local environments.
       *
       * @return void
       */
      protected function gate()
      {
          Gate::define('viewTelescope', function (?User $user) {
              #设置ip访问
              return in_array(request()->getClientIp(), [
                  'xx.xx.204.117',
              ]);
    //            return array_key_exists('secretTelescope', $_COOKIE);
    //            return in_array($user->email, [
    //                //
    //            ]);
          });
    
      }

数据查询监听

数据查询监听器记录应用程序执行的所有查询的原始 SQL、绑定和执行时间。观察者还将任何慢于 100 毫秒的查询标记为 slow。您可以使用观察者的 slow 选项自定义慢查询阈值:

'watchers' => [
    Watchers\QueryWatcher::class => [
        'enabled' => env('TELESCOPE_QUERY_WATCHER', true),
        'slow' => 3,
    ],
    ...
],

Laravel 框架的优雅调试助手 Laravel Telescope

关闭

'enabled' => env('TELESCOPE_ENABLED', false),

清理数据

如果没有清理的话,telescope_entries 表会迅速累积记录。要缓解这一现状,需要通过调度任务每天运行 Artisan 命令 telescope:prune 来清理老数据:

$schedule->command('telescope:prune')->daily();

默认情况下,所有 24 小时之前的数据都会被清理,你可以在运行上述命令的时候使用 hours 选项来决定要保存多长时间以内的 Telescope 数据。例如,下面这个命令将会删除所有 48 小时以前创建的数据:

$schedule->command('telescope:prune --hours=48')->daily();

修改夜间模式

Laravel 框架的优雅调试助手 Laravel Telescope

结束语

更多技巧可以查看
官方文档
Telescope 调试工具
Useful Laravel Packages

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!