Debugging-Tool für Telescope-Anwendungen
- Einführung
- Installation
- Update Teleskop
- Maßgeschneiderte Datenmigration
- Individuelle Filterung
- StapelfilterungCache-Abhören
- Befehl Monitor
- Datenüberwachung
- Ereignisüberwachung
- Ausnahmeüberwachung
- Tor Überwachung
- Prozessüberwachung
- Protokollüberwachung
- Mailüberwachung
- Modellüberwachung
- Nachrichtenbenachrichtigungsüberwachung
- Datenabfrageüberwachung
- Redis Zuhören
- Zuhören anfordern
- Hören vereinbaren
Laravel Teleskop
Einführung
Larave Telescope ist ein eleganter Debugging-Assistent für das Laravel-Framework. Telescope bietet Einblick in Anfragen, die in Ihrer Anwendung eingehen, Ausnahmen, Protokolleinträge, Datenbankabfragen, Jobs in der Warteschlange, E-Mails, Benachrichtigungen, Cache-Vorgänge, geplante Aufgaben, Variablen-Dumps und mehr. Telescope ist ein großartiger Begleiter für Ihre lokale Laravel-Entwicklungsumgebung.
Installation
Sie können Composer verwenden, um die Telescope-Erweiterung in Ihrem Laravel-Projekt zu installieren:
composer require laravel/telescope
Nach der Installation von Telescope können Sie verwenden es in Artisan
telescope:install
Befehl zum Konfigurieren von Skalierungsinstanzen. Nach der Installation von Telescope sollten Sie auch den Befehlmigrate
ausführen:php artisan telescope:install php artisan migrate
Teleskop aktualisieren
Beim Aktualisieren von Telescope sollten Sie die geladene Telescope-Instanz neu konfigurieren:
php artisan telescope:publish
Nur in bestimmte Umgebungen Installieren Sie
, wenn Sie Telescope nur zur Unterstützung Ihrer lokalen Entwicklung verwenden möchten. Telescope kann mit dem
--dev
-Flag installiert werden:composer require laravel/telescope --dev
Nach dem Ausführen von
telescope:install
sollten Sie dieapp
-Dienstanbieterregistrierung aus derTelescopeServiceProvider
-Konfigurationsdatei entfernen. Registrieren Sie den Dienst stattdessen manuell in derAppServiceProvider
-Methode vonregister
:use Laravel\Telescope\TelescopeServiceProvider; /** * 注册应用服务。 * * @return void */public function register(){ if ($this->app->isLocal()) { $this->app->register(TelescopeServiceProvider::class); } }
Benutzerdefinierte Datenmigration
Wenn Sie dies nicht tun Planen Sie die Verwendung von Telescope. Die Standardmigration sollte in der
Konfigurieren Mit Telescope befindet sich die Hauptkonfigurationsdatei unterAppServiceProvider
-Methode vonregister
aufgerufen werden Methode. Sie können Standardmigrationen mit dem BefehlTelescope::ignoreMigrations
exportieren.php artisan vendor:publish --tag=telescope-migrations
. Mit dieser Konfigurationsdatei können Sie Listener-Optionen konfigurieren. Jede Konfigurationsoption enthält eine Beschreibung ihres Zwecks. Lesen Sie diese Datei daher unbedingt sorgfältig durch.
Bei Bedarf können Sie die Datenerfassung von Telescope mithilfe derconfig/telescope.php
Konfigurationsoption vollständig deaktivieren:
enabled
'enabled' => env('TELESCOPE_ENABLED', true),
DatenänderungBei Datenänderungen kann die-Tabelle sehr schnell Datensätze ansammeln. Um dieses Problem zu beheben, sollten Sie den Befehl
telescope_entries
täglich mit Artisan ausführen:telescope:prune
$schedule->command('telescope:prune')->daily();
Standardmäßig werden alle Daten abgerufen, die älter als 24 Stunden sind. Sie können beim Aufrufen des Befehls die Optionverwenden, um zu bestimmen, wie lange Telescope-Daten aufbewahrt werden. Mit dem folgenden Befehl werden beispielsweise alle vor 48 Stunden erstellten Datensätze gelöscht:
hours
$schedule->command('telescope:prune --hours=48')->daily();
Dashboard-AutorisierungTelescope zeigt das Dashboard unteran Platte. Standardmäßig können Sie auf dieses Dashboard nur innerhalb der
/telescope
-Umgebung zugreifen. In Ihrer本地
-Datei gibt es eineapp/Providers/TelescopeServiceProvider.php
-Methode. Diese Autorisierung steuert den Zugriff auf Telescope in einergate
nicht lokalen Umgebung. Es steht Ihnen frei, diese Berechtigungseinschränkung nach Bedarf für Ihre Telescope-Installation und Ihren Zugriff zu ändern:/** * 註冊 Telescope Gate。 * * 使用 Gate 决定谁可以在非本地环境中访问 Telescope。 * * @return void */ protected function gate(){ Gate::define('viewTelescope', function ($user) { return in_array($user->email, [ 'taylor@laravel.com', ]); }); }
FilterungEinzelelementfilterung
Sie können die von Telescope aufgezeichneten Daten über den in
TelescopeServiceProvider
registriertenfilter
-Rückruf filtern. Standardmäßig protokolliert dieser Rückruf alle Daten in der本地
-Umgebung sowie Ausnahmen, Prozessunterbrechungen, geplante Aufgaben und Daten mit dem überwachten Flag in allen anderen Umgebungen:/** * 注册应用服务。 * * @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(); }); }
Stapelfilterung
Während der
filter
-Rückruf die Daten für einen einzelnen Eintrag filtert, können Sie ihn verwenden DiefilterBatch
-Methode registriert einen Rückruf, der alle Daten für eine bestimmte Anfrage oder einen bestimmten Konsolenbefehl filtert. Wenn der Rückruftrue
zurückgibt, werden alle Daten von Telescope aufgezeichnet: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(); }); }); }
Verfügbare Listener
beim Ausführen von Befehlen in der Konsole oder Telescope Listener sammeln Anwendungsdaten bei der Verarbeitung von Anfragen. Sie finden es unter
config/telescope.php
Passen Sie die Liste der Elemente an, um das Abhören in der Konfigurationsdatei zu aktivieren:'watchers' => [ Watchers\CacheWatcher::class => true, Watchers\CommandWatcher::class => true, ... ],
Einige Listener ermöglichen Ihnen auch die Bereitstellung zusätzlicher Anpassungsoptionen:
'watchers' => [ Watchers\QueryWatcher::class => [ 'enabled' => env('TELESCOPE_QUERY_WATCHER', true), 'slow' => 100, ], ... ],
Cache-Listener
Cache-Listener zeichnen Daten auf, wenn Cache-Schlüssel getroffen, übersehen, aktualisiert und vergessen werden.
Befehls-Listener
Der Befehls-Listener protokolliert Argumente, Optionen, Exit-Codes und Ausgaben, wann immer ein Artisan-Befehl ausgeführt wird. Wenn Sie bestimmte vom Listener aufgezeichnete Befehle ausschließen möchten, können Sie den Befehl in der Option
config/telescope.php
der Dateiignore
angeben:'watchers' => [ Watchers\CommandWatcher::class => [ 'enabled' => env('TELESCOPE_COMMAND_WATCHER', true), 'ignore' => ['key:generate'], ], ... ],
Data Zuhören
Data Listener zeichnet Ihre Datenvariablen in Telescope auf und zeigt sie an. Wenn Sie Laravel verwenden, können Sie die globale Funktion
dump
verwenden, um Variablen auszugeben. Für die Ausgabe von Variablen muss die Registerkarte „Daten-Listener“ im Browser geöffnet sein, andernfalls ignoriert der Listener diese Ausgabe.Ereignis-Listener
Ereignis-Listener zeichnen die Nutzlast, Listener und Broadcast-Daten für jedes von der Anwendung ausgelöste Ereignis auf. Ereignis-Listener ignorieren interne Ereignisse des Laravel-Frameworks.
Ausnahme-Listener
Der Ausnahme-Listener zeichnet die Daten und den Stack-Trace jeder meldepflichtigen Ausnahme auf, die von der Anwendung ausgelöst wird.
Gate Listener
Gate Listener zeichnet die Daten und Ergebnisse der Gate- und Richtlinienprüfungen Ihrer Anwendung auf. Wenn Sie bestimmte Funktionen von der Protokollierung durch den Listener ausschließen möchten, können Sie diese in der Option
config/telescope.php
der Dateiignore_abilities
angeben:'watchers' => [ Watchers\GateWatcher::class => [ 'enabled' => env('TELESCOPE_GATE_WATCHER', true), 'ignore_abilities' => ['viewNova'], ], ... ],
Process Listener
Der Prozess-Listener zeichnet die Daten und den Status aller von der Anwendung gesendeten Jobs auf.
Protokollmonitor
Der Protokollmonitor zeichnet Protokolldaten für jedes von der Anwendung geschriebene Protokoll auf.
Mail Monitor
Mit Mail Monitor können Sie im Browser eine Vorschau von E-Mails und den zugehörigen Daten anzeigen. Sie können die E-Mail auch als
.eml
-Datei herunterladen.Model Listening
Solange das Ereignis
create
,updated
,restored
oderdeleted
des Modells ausgelöst wird, Das Modell beobachtet Die Modelländerungen werden vom Server aufgezeichnet. Sie können über dieevents
-Option des Listeners festlegen, welche Modellereignisse protokolliert werden sollen:'watchers' => [ Watchers\ModelWatcher::class => [ 'enabled' => env('TELESCOPE_MODEL_WATCHER', true), 'events' => ['eloquent.created*', 'eloquent.updated*'], ], ... ],
Message Notification Listener
Message Notification Listener Record All Benachrichtigungen, die von Ihrer Anwendung gesendet werden. Wenn eine Benachrichtigung eine E-Mail auslöst und Sie E-Mail-Listener aktiviert haben, kann die E-Mail auch auf dem Mail-Monitor-Bildschirm in der Vorschau angezeigt werden.
Datenabfrage-Listener
Der Datenabfrage-Listener zeichnet das Roh-SQL, die Bindung und die Ausführungszeit aller von der Anwendung ausgeführten Abfragen auf. Der Beobachter markiert außerdem jede Abfrage, die langsamer als 100 Millisekunden ist, als
slow
. Sie können den Schwellenwert für langsame Abfragen mithilfe der Optionslow
des Beobachters anpassen:'watchers' => [ Watchers\QueryWatcher::class => [ 'enabled' => env('TELESCOPE_QUERY_WATCHER', true), 'slow' => 50, ], ... ],
Redis-Listener
Muss nur Redis-Ereignisse aktivieren Auf diese Weise kann der Redis-Listener normal ausgeführt werden. Sie können Redis-Ereignisse aktivieren, indem Sie
app/Providers/AppServiceProvider.php
in derboot
-Methode derRedis::enableEvents()
-Datei aufrufen.Redis Listener zeichnet alle von Ihrer Anwendung ausgeführten Redis-Befehle auf. Wenn Sie Redis zum Caching verwenden, protokolliert der Redis-Listener auch Cache-Befehle.
Anforderungs-Listener
Der Anforderungs-Listener zeichnet die Anforderungs-, Header-, Sitzungs- und Antwortdaten auf, die mit jeder von der Anwendung verarbeiteten Anforderung verknüpft sind. Sie können die Antwortdaten über die Option
size_limit
(in KB) einschränken:'watchers' => [ Watchers\RequestWatcher::class => [ 'enabled' => env('TELESCOPE_REQUEST_WATCHER', true), 'size_limit' => env('TELESCOPE_RESPONSE_SIZE_LIMIT', 64), ], ... ],
Schedule Listener
Schedule Listener Recording Application Commands and Ausgabe aller ausgeführten geplanten Aufgaben.
Dieser Artikel wurde zuerst auf der Website LearnKu.com veröffentlicht.