Outil de débogage d’applications de télescope
- Mise à jour du télescope
- Migration de données personnalisée
- Configuration
- Autorisation du tableau de bord
- Filtre ing
- Célibataire filtrage
- Filtrage par lots
- Surveillance disponible
- Surveillance des données
- Surveillance des exceptions
- Gate surveillance
- Surveillance des processus
- Surveillance des journaux
- Surveillance du courrier
- Surveillance des modèles
- Surveillance des notifications de messages
- Surveillance des requêtes de données
- Surveillance Redis
- Demande surveillance
- Suivi des horaires
Télescope Laravel
- Introduction
- Installation
- Autorisation du tableau de bord
- Filtrage
- Filtrage d'un seul élément Filtrage par lots Surveillance des événements Listen
- Surveillance des exceptions
- Gate Surveillance
- Surveillance des processus
- Surveillance des journaux
- Surveillance du courrier
- Surveillance des modèles
- Surveillance des notifications de messages
- Surveillance des requêtes de données
- Redis écoute
- Surveillance des demandes
- Schedule Monitoring
- Introduction
- Larave Telescope est un élégant assistant de débogage pour le framework Laravel. Telescope fournit un aperçu des demandes entrant dans votre application, des exceptions, des entrées de journal, des requêtes de base de données, des tâches en file d'attente, des e-mails, des notifications, des opérations de cache, des tâches planifiées, des vidages de variables, etc. Telescope est un excellent compagnon pour votre environnement de développement Laravel local.
Installation
Vous pouvez utiliser Composer pour installer l'extension Telescope dans votre projet Laravel :
composer require laravel/telescope
Après avoir installé Telescope, vous pouvez utiliser la commande
telescope:install
dans Artisan pour configurer l'extension exemple. Après avoir installé Telescope, vous devez également exécuter la commandemigrate
:telescope:install
命令来配置扩展实例。安装 Telescope 后,还应运行migrate
命令:php artisan telescope:install php artisan migrate
更新 Telescope
更新 Telescope 时,您应该重新配置加载 Telescope 实例:
php artisan telescope:publish
仅在特定环境中安装
如果您打算仅使用 Telescope 来协助您的本地开发。可以使用
--dev
标志安装 Telescope:composer require laravel/telescope --dev
运行
telescope:install
后,您应该从app
配置文件中删除TelescopeServiceProvider
服务提供注册。相反,在AppServiceProvider
的register
方法中手动注册服务:use Laravel\Telescope\TelescopeServiceProvider; /** * 注册应用服务。 * * @return void */public function register(){ if ($this->app->isLocal()) { $this->app->register(TelescopeServiceProvider::class); } }
定制数据迁移
如果您不打算使用 Telescope 的默认迁移,则应该在
AppServiceProvider
的register
方法中调用Telescope::ignoreMigrations
方法。您可以使用php artisan vendor:publish --tag=telescope-migrations
命令导出默认迁移。配置
使用 Telescope,其主要配置文件将位于
config/telescope.php
。此配置文件允许您配置监听程序选项,每个配置选项都包含其用途说明,因此请务必彻底浏览此文件。如果需要,您可以使用
enabled
配置选项完全禁用 Telescope 的数据收集:'enabled' => env('TELESCOPE_ENABLED', true),
数据修改
有了数据修改,
telescope_entries
表可以非常快速地累积记录。为了缓解这个问题,你应该使用 Artisan 每天运行telescope:prune
命令:$schedule->command('telescope:prune')->daily();
默认情况下,将获取超过 24 小时的所有数据。在调用命令时可以使用
hours
选项来确定保留 Telescope 数据的时间。例如,以下命令将删除 48 小时前创建的所有记录:$schedule->command('telescope:prune --hours=48')->daily();
仪表板授权
Telescope 在
/telescope
处显示仪表板。默认情况下,您只能在本地
环境中访问此仪表板。在你的app/Providers/TelescopeServiceProvider.php
文件中,有一个gate
/** * 註冊 Telescope Gate。 * * 使用 Gate 决定谁可以在非本地环境中访问 Telescope。 * * @return void */ protected function gate(){ Gate::define('viewTelescope', function ($user) { return in_array($user->email, [ 'taylor@laravel.com', ]); }); }
Mettre à jour Telescope
Lors de la mise à jour de Telescope, vous devez reconfigurer l'instance Telescope chargée :/** * 注册应用服务。 * * @return void */ public function register(){ $this->hideSensitiveRequestDetails(); Telescope::filter(function (IncomingEntry $entry) { if ($this->app->isLocal()) { return true; } return $entry->isReportableException() || $entry->isFailedJob() || $entry->isScheduledTask() || $entry->hasMonitoredTag(); }); }
Uniquement dans certains environnements Installez dans
Si vous prévoyez d'utiliser Telescope uniquement pour vous aider dans votre développement local. Le télescope peut être installé en utilisant l'indicateur--dev
:use Illuminate\Support\Collection; /** * 注册应用服务。 * * @return void */ public function register(){ $this->hideSensitiveRequestDetails(); Telescope::filterBatch(function (Collection $entries) { if ($this->app->isLocal()) { return true; } return $entries->contains(function ($entry) { return $entry->isReportableException() || $entry->isFailedJob() || $entry->isScheduledTask() || $entry->hasMonitoredTag(); }); }); }
Après avoir exécutételescope:install
, vous devez supprimerde la configuration de
Enregistrement du fournisseur de services. Au lieu de cela, enregistrez manuellement le service dans la méthodeapp
fichier TelescopeServiceProviderregister
deAppServiceProvider
:'watchers' => [ Watchers\CacheWatcher::class => true, Watchers\CommandWatcher::class => true, ... ],
Migration de données personnalisée h3 >
Si vous ne prévoyez pas d'utiliser les migrations par défaut de Telescope, vous devez appeler la méthode
🎜Telescope::ignoreMigrations
dans la méthoderegister
deAppServiceProvider
. Vous pouvez exporter les migrations par défaut à l'aide de la commandephp artisan seller:publish --tag=telescope-migrations
.Configuration
🎜Pour utiliser Telescope, son fichier de configuration principal sera situé dansconfig/telescope.php
. Ce fichier de configuration vous permet de configurer les options d'écoute, chaque option de configuration contient une description de son objectif, alors assurez-vous de parcourir attentivement ce fichier. 🎜🎜Si vous le souhaitez, vous pouvez désactiver complètement la collecte de données de Telescope en utilisant l'option de configurationenabled
: 🎜'watchers' => [ Watchers\QueryWatcher::class => [ 'enabled' => env('TELESCOPE_QUERY_WATCHER', true), 'slow' => 100, ], ... ],
🎜🎜🎜Modification des données
🎜 Avec des modifications de données, la tabletelescope_entries
peut accumuler des enregistrements très rapidement. Pour atténuer ce problème, vous devez exécuter la commandetelescope:prune
chaque jour à l'aide d'Artisan : 🎜'watchers' => [ Watchers\CommandWatcher::class => [ 'enabled' => env('TELESCOPE_COMMAND_WATCHER', true), 'ignore' => ['key:generate'], ], ... ],
🎜Par défaut, toutes les données datant de plus de 24 heures seront récupérées. Vous pouvez utiliser l'optionhours
lors de l'appel de la commande pour déterminer la durée pendant laquelle les données du télescope sont conservées. Par exemple, la commande suivante supprimera tous les enregistrements créés il y a 48 heures : 🎜'watchers' => [ Watchers\GateWatcher::class => [ 'enabled' => env('TELESCOPE_GATE_WATCHER', true), 'ignore_abilities' => ['viewNova'], ], ... ],
🎜🎜🎜🎜Autorisation du tableau de bord🎜🎜Telescope Afficher le tableau de bord sur/telescope
. Par défaut, vous ne pouvez accéder à ce tableau de bord que dans un environnementlocal
. Dans votre fichierapp/Providers/TelescopeServiceProvider.php
, il existe une méthodegate
. Cette autorisation contrôle l'accès à Telescope dans un environnement 🎜non local🎜. Vous êtes libre de modifier cette restriction d'autorisation si nécessaire pour l'installation et l'accès au télescope : 🎜'watchers' => [ Watchers\ModelWatcher::class => [ 'enabled' => env('TELESCOPE_MODEL_WATCHER', true), 'events' => ['eloquent.created*', 'eloquent.updated*'], ], ... ],
🎜🎜🎜🎜🎜Filtering🎜🎜🎜🎜🎜Filtrage d'un seul élément
Vous pouvez filtrer les données enregistrées par Telescope via le rappel
filter
enregistré dansTelescopeServiceProvider
. Par défaut, ce rappel enregistre toutes les données dans l'environnementlocal
ainsi que les exceptions, les interruptions de processus, les tâches planifiées et les données avec l'indicateur surveillé dans tous les autres environnements :TelescopeServiceProvider
中注册的filter
回调来过滤 Telescope 记录的数据。默认情况下,此回调会记录本地
环境中的所有数据以及所有其他环境中的异常、进程中断、计划任务和带有受监控标记的数据:'watchers' => [ Watchers\QueryWatcher::class => [ 'enabled' => env('TELESCOPE_QUERY_WATCHER', true), 'slow' => 50, ], ... ],
批量过滤
虽然
filter
回调过滤单个条目的数据,但您可以使用filterBatch
方法注册一个回调,该回调过滤给定请求或控制台命令的所有数据。如果回调返回true
,则所有数据都由 Telescope 记录:'watchers' => [ Watchers\RequestWatcher::class => [ 'enabled' => env('TELESCOPE_REQUEST_WATCHER', true), 'size_limit' => env('TELESCOPE_RESPONSE_SIZE_LIMIT', 64), ], ... ],
可用的监听
当在控制台执行命令或处理请求时,Telescope 监听器会收集应用程序数据。您可以在
rrreeeconfig/telescope.php
配置文件中自定义要启用监听项的列表:一些监听器还允许您提供其他自定义选项:
rrreee缓存监听
当缓存键被命中、遗漏、更新和遗忘时,缓存监听器会记录数据。
命令监听
只要执行 Artisan 命令,命令监听器就会记录参数、选项、退出代码和输出。如果您想排除监听器记录的某些命令,您可以在
rrreeeconfig/telescope.php
文件的ignore
选项中指定命令:数据监听
数据监听器在 Telescope 中记录并显示您的数据变量。使用 Laravel 时,可以使用全局
dump
函数输出变量。必须在浏览器中打开数据监听器选项卡,才能进行输出变量,否则监听器将忽略此次输出。事件监听
事件监听器记录应用程序调度的任何事件的有效负载、监听器和广播数据。事件监听器忽略了 Laravel 框架的内部事件。
异常监听
异常监听器记录应用程序引发的任何可报告异常的数据和堆栈跟踪。
Gate 监听
Gate 监听器记录您的应用程序的 Gate 和策略检查的数据和结果。如果您希望将某些能力排除在监听器的记录之外,您可以在
config/telescope.php
文件的ignore_abilities
rrreeeAlors que le rappel
rrreeefilter
filtre les données pour une seule entrée, vous pouvez utiliser la méthodefilterBatch
pour enregistrer un rappel qui filtre sur Tous données pour une requête spécifique ou une commande de console. Si le rappel renvoietrue
, toutes les données sont enregistrées par Telescope :Observateurs disponibles
Dans la console Telescope les écouteurs collectent des données d’application lors de l’exécution de commandes ou du traitement de requêtes. Vous pouvez personnaliser la liste des éléments pour activer l'écoute dans le fichier de configurationconfig/telescope.php
: rrreeeCertains auditeurs vous permettent également de fournir des options de personnalisation supplémentaires :rrreee
Cache WatcherCache Watcher enregistre les données lorsque les clés de cache sont utilisées, manquées, mises à jour et oubliées.
🎜🎜🎜🎜Command Watcher🎜🎜L'observateur de commandes enregistre les arguments, les options, les codes de sortie et les sorties chaque fois qu'une commande Artisan est exécutée. Si vous souhaitez exclure certaines commandes de l'enregistrement par l'écouteur, vous pouvez spécifier les commandes dans l'optionignore
du fichierconfig/telescope.php
: 🎜rrreee🎜< a name=" dump-watcher">🎜🎜🎜Data Watcher🎜🎜L'observateur de données enregistre et affiche vos variables de données dans Telescope. Lorsque vous utilisez Laravel, vous pouvez utiliser la fonction globaledump
pour générer des variables. L'onglet de l'écouteur de données doit être ouvert dans le navigateur pour afficher les variables, sinon l'écouteur ignorera cette sortie. 🎜🎜🎜🎜🎜Event Watcher 🎜🎜Event watcher enregistre la charge utile, l'auditeur et les données de diffusion de tout événement envoyé par l'application. Les écouteurs d'événements ignorent les événements internes du framework Laravel. 🎜🎜🎜🎜🎜Exception Watcher🎜🎜Exception Watcher enregistre les données et empile les traces de toutes les exceptions à signaler émises par l'application. 🎜🎜🎜🎜🎜Gate watcher 🎜🎜Gate watcher enregistre les données et les résultats des vérifications de Gate et de politique de votre application. Si vous souhaitez exclure certaines fonctionnalités de la journalisation par l'écouteur, vous pouvez les spécifier dans l'optionignore_abilities
du fichierconfig/telescope.php
: 🎜rrreee🎜🎜 🎜 🎜🎜Process Listener🎜🎜L'écouteur de processus enregistre les données et l'état de toute tâche envoyée par l'application. 🎜🎜🎜🎜🎜🎜Log Monitor 🎜🎜Le moniteur de journal enregistre les données de journal pour tout journal écrit par l'application. 🎜🎜🎜🎜🎜Mail Monitor
Mail Monitor vous permet d'afficher des aperçus dans le navigateur des e-mails et de leurs données associées. Vous pouvez également télécharger l'e-mail sous forme de fichier
.eml
..eml
文件。模型监听
只要调度了模型的
rrreeecreate
、updated
、restored
或deleted
事件,模型观察器就会记录模型更改。您可以通过监听器的events
选项指定应记录哪些模型事件:消息通知监听
消息通知监听器记录您的应用程序发送的所有通知。如果通知触发了电子邮件并且您启用了邮件监听器,则电子邮件也可以在邮件监视器屏幕上进行预览。
数据查询监听
数据查询监听器记录应用程序执行的所有查询的原始 SQL、绑定和执行时间。观察者还将任何慢于 100 毫秒的查询标记为
rrreeeslow
。您可以使用观察者的slow
选项自定义慢查询阈值:Redis 监听
必须启用 Redis 事件才能使 Redis 监听器正常运行。您可以通过在
app/Providers/AppServiceProvider.php
文件的boot
方法中调用Redis::enableEvents()
来启用 Redis 事件。Redis 监听器记录您的应用程序执行的所有 Redis 命令。如果您使用 Redis 进行缓存,Redis 监听器也会记录缓存命令。
请求监听
请求监听器记录与应用程序处理的任何请求相关联的请求、标头、会话和响应数据。您可以通过
size_limit
Tant que le modèle est
rrreeeL'écouteur de notifications de messages enregistre toutes vos notifications. envoyé par l'application. Si une notification déclenche l'envoi d'un e-mail et que les écouteurs de messagerie sont activés, l'e-mail peut également être prévisualisé sur l'écran Mail Monitor.créé
,mis à jour
etrestauré
sont planifiés ousupprimés
, l'observateur du modèle enregistrera le changement de modèle. Vous pouvez spécifier quels événements de modèle doivent être enregistrés via l'optionevents
de l'écouteur :
- Modification des données
- Surveillance des événements
lente
. Vous pouvez personnaliser le seuil de requête lente à l'aide de l'option slow
de l'observateur : 🎜rrreee🎜🎜🎜🎜Redis watcher🎜🎜Les événements Redis doivent être activés pour cela. pour fonctionner, l'écouteur Redis fonctionne normalement. Vous pouvez activer les événements Redis en appelant🎜L'écouteur Redis enregistre toutes les commandes Redis exécutées par votre application. Si vous utilisez Redis pour la mise en cache, l'écouteur Redis enregistre également les commandes de cache. 🎜🎜🎜🎜🎜Request Watcher 🎜🎜L'observateur de demandes enregistre la demande, les en-têtes, les données de session et de réponse associés à toute demande traitée par l'application. Vous pouvez limiter les données de réponse via l'optionRedis::enableEvents()
dans la méthodeboot
du fichierapp/Providers/AppServiceProvider.php
. 🎜
size_limit
(en Ko) : 🎜rrreee🎜🎜🎜🎜🎜Schedule Listener 🎜🎜Schedule Listener enregistre les commandes et la sortie de toutes les tâches planifiées exécutées par l'application. 🎜🎜Cet article a été publié pour la première fois sur le site 🎜LearnKu.com🎜. 🎜🎜