コンテンツにスキップ

デバッグとログ記録

CloudflareダッシュボードまたはWrangler CLIを使用して、Functionsのログにアクセスします。

ログは、デプロイされた後のPages Functionsの動作をテストおよび監視するのに役立つ強力なデバッグツールです。ログは、Pagesプロジェクトのすべてのデプロイメントに対して利用可能です。

ログは、イベントに関する詳細情報を提供し、以下のことを洞察するのに役立ちます:

  • Functionsへの成功または失敗したリクエスト。
  • Functionsによってスローされた未捕捉の例外。
  • Functions内で宣言されたカスタムconsole.log
  • 簡単に再現できない本番環境の問題。
  • アプリケーションへの受信リクエストのリアルタイムビュー。

ログセッションを開始する方法は2つあります:

  1. ターミナルでwrangler pages deployment tailを実行します。ターミナルでの実行方法を参照してください。
  2. Cloudflareダッシュボードを使用します。

カスタムログの追加

カスタムログは、Functions内に自分で追加できるconsole.log()ステートメントです。これらのFunctionsを含むデプロイメントのログをストリーミングすると、ステートメントはwrangler pages deployment tailとダッシュボードの出力の両方に表示されます。

以下は、Pages Function内のカスタムconsole.logステートメントの例です:

export async function onRequest(context) {
console.log(`[LOGGING FROM /hello]: Request came from ${context.request.url}`);
return new Response("Hello, world!");
}

上記のコードをデプロイした後、ターミナルでwrangler pages deployment tailを実行します。次に、Functionが存在するルートにアクセスします。ターミナルには次のように表示されます:

Run wrangler pages deployment tail

ダッシュボードには次のように表示されます:

Follow the above steps to access custom logs in the dashboard

Wranglerでのログの表示

wrangler pages deployment tailは、特定のプロジェクトとデプロイメントのログをライブストリーミングすることを可能にします。

始めるには、Pagesプロジェクトディレクトリでwrangler pages deployment tailを実行します。これにより、アプリケーションへの受信リクエストがローカルターミナルにログされます。

wrangler pages deployment tailログの出力は、構造化されたJSONオブジェクトです:

{
"outcome": "ok",
"scriptName": null,
"exceptions": [
{
"stack": " at src/routes/index.tsx17:4\n at new Promise (<anonymous>)\n",
"name": "Error",
"message": "An error has occurred",
"timestamp": 1668542036110
}
],
"logs": [],
"eventTimestamp": 1668542036104,
"event": {
"request": {
"url": "https://pages-fns.pages.dev",
"method": "GET",
"headers": {},
"cf": {}
},
"response": {
"status": 200
}
},
"id": 0
}

wrangler pages deployment tailを使用すると、ニーズに合わせてログセッションをカスタマイズできます。利用可能な設定オプションについては、wrangler pages deployment tailのドキュメントを参照してください。

Cloudflareダッシュボードでのログの表示

productionまたはpreview環境に関連するデプロイメントのログを表示するには:

  1. Cloudflareダッシュボードにログインし、アカウントを選択します。
  2. アカウントホームで、Workers & Pagesを選択します。
  3. Pagesプロジェクトを選択し、ログを表示したいデプロイメントに移動して、詳細を表示 > Functionsを選択します。

ログ記録は、すべての顧客(無料、有料、エンタープライズ)に利用可能です。

制限

Functionsログには以下の制限があります:

  • ログは保存されません。いつでもストリームを開始および停止して表示できますが、持続しません。
  • 過去5分間にFunctionのリクエスト数が100を超える場合、ログは表示されません。
  • FunctionsがバインドしているDurable ObjectsからのログはCloudflareダッシュボードに表示されます。
  • 最大10クライアントが同時にデプロイメントのログを表示できます。これは、ダッシュボードセッションまたはwrangler pages deployment tail呼び出しの組み合わせです。

ソースマップ

未捕捉の例外をデバッグしている場合、ログ内のスタックトレースに生成されたJavaScriptファイルの行番号が含まれていることがあります。Pagesのソースマップのサポートを使用すると、元のソースコードの行番号やシンボルに一致するスタックトレースを取得できます。

詳細な説明については、ソースマップとスタックトレースを参照してください。