LaravelデバックツールTelescopeをインストールしてエラーの原因を効率よく見つけましょう

Laravelデバック対策

LaravelにはTelescope(テレスコープ)というデバック用ツールがあります。

アプリ内のすべてのリクエスト、メール、Gate処理などを視覚化でき、エラーの原因を見つけやすくなる便利なツールです。

「デバックツールは開発環境でだけ使いたい」という場合が多いと思うので、開発環境でのみ有効にする設定と共に、Telescopeのインストール方法と使い方、お掃除方法など紹介しますね。

Junko
Junko

地味ですが、お掃除も大事です♪

LaravelデバックツールTelescopeを開発環境にだけインストールする方法

まずはインストール方法から。

Telescopeのインストール方法

①下記コマンドを入力します。

開発環境にだけインストールする場合は、最後に–dev をつけます。

 

②次に、下記コマンドを入力します。

 

③最後にマイグレートを実行します。

この時点でデータベースを確認すると、下記のようにtelescope用のテーブルが新たに作成されています。

Telescopeを開発環境にだけインストールする設定

開発環境でだけ使用したい場合には、もう少し設定が必要です。

公式マニュアルには、下記3ステップが掲載されています。

① config/app.php ファイルを編集

config/app.phpファイルの中の TelescopeServiceProviderの設定を削除、または無効にしておきます。

【app.php】

 

② AppServiceProvider.phpの設定

App/Providers/AppServiceProvider.php ファイルに、下記を追加します。

【AppServiceProvider.php】

追加箇所は、下記の黄色で囲った部分になります。

 

③composer.json編集

本番環境でTelescopeライブラリが自動検出されないように、composer.jsonの dont-discover の項目に  "laravel/telescope" を追加します。

LaravelデバックツールTelescopeを使ってみよう

準備が整ったら、実際にTelescopeを使ってみましょう。

ローカル上の環境を立ち上げ、ローカル環境URL/telescope でダッシュボードを表示できます。

Junko
Junko

ダッシュボードが出てこない場合は、サーバーを立ち上げなおしてみてくださいね。

ダッシュボードには、Webアプリ内で実行kされたリクエストが一覧表示されています。

各リクエストの詳細は、右側の 目のマークをクリックすると、確認できます。

たとえば、500エラーになってしまったとします。右側の目のマークをクリックすると、エラーの詳細が表示されます。

ページ下にエラーメッセージが表示されているので、後からでもエラーメッセージを確認できます。

リクエスト以外にも、様々な履歴を取得できます。左側のサイドバーから、各処理を選択します。

たとえばWebアプリからメールを送信した履歴をチェックするなら、Mailを選択します。Gateの処理はGates、エラーログは、Logsからチェックできます。

Telescopeを使った後は、お掃除しましょう。

Telescopeはすべての処理を残してくれるので、データ量はどんどん増えていきます。Laravelの公式マニュアルでは、「データの刈込」を行うように書かれています。

データの刈り込みを行わないと、telescope_entriesテーブルにレコードがあっという間に溜まります。これを軽減するに、telescope:prune Artisanコマンドをスケジュールして毎日実行する必要があります。

参考:https://readouble.com/laravel/8.x/ja/telescope.html

そういったわけで、たまにお掃除をしてあげたほうが良いかな、と思います。下記コマンドを実行すると、24時間以上前のエントリーが削除されます。

コマンドを実行すると、何個のエントリー処理したかが表示されます。

 

Junko
Junko

ちなみにpruneは、英語で【刈り込む】【剪定する」って意味です。

面白いネーミングですね。

「面倒だから、ぜんぶのエントリーを削除しちゃおう!」という場合は、下記コマンドを実行してください。

Junko
Junko

Telescope内に蓄積された処理履歴が一気に消せます。

やっぱりやめた!はできないのでご注意を。

*スケジュール処理を実行する場合は、次のようなコマンドをApp/Console/Kernel.phpに加えます。

Telescopeを使わない時は、お休みさせておきましょう。

お掃除もメンドウなので^^; Telescopeを普段は使わない場合には、お休みさせておきましょう。

config/telescope.php の65行目あたり TELESCOPE_ENABLED をtrueからfalseに変えると、無効になります。

【telescope.php】

これは .envファイルに TELESCOPE_ENABLEDという項目があれば、その設定を使う、なければfalseにする、という意味です。

つまり、.envファイルに下記のように TELESCOPE_ENABLED の項目を追加し、falseに設定してもOKです。

さいごに

以上、LaravelのTelescopeについて紹介しました。

Telescopeは見えない部分を視覚化できるので、なかなか頼もしいです。

「エラーにはならないけれど、処理がうまくできない」

なんて時にも、何が行われているかが分かって役立ちますよ。

Laravelデバック対策

【Laravelの教科書・無料プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック
【LaravelでWebアプリ開発します】

「会員制サイトを作ってほしい」「開発の時間がないから頼みたい!」

こんなご要望承り中。オンラインミーティングでも、ご相談承ります。

サンプルやお見積もり目安を見てみる

Twitter始めました。
40代からプログラミング!

コメント

タイトルとURLをコピーしました