デバッグとログ記録
CloudflareダッシュボードまたはWrangler CLIを使用して、Functionsのログにアクセスします。
ログは、デプロイされた後のPages Functionsの動作をテストおよび監視するのに役立つ強力なデバッグツールです。ログは、Pagesプロジェクトのすべてのデプロイメントに対して利用可能です。
ログは、イベントに関する詳細情報を提供し、以下のことを洞察するのに役立ちます:
- Functionsへの成功または失敗したリクエスト。
- Functionsによってスローされた未捕捉の例外。
- Functions内で宣言されたカスタム
console.log。 - 簡単に再現できない本番環境の問題。
- アプリケーションへの受信リクエストのリアルタイムビュー。
ログセッションを開始する方法は2つあります:
- ターミナルで
wrangler pages deployment tailを実行します。ターミナルでの実行方法を参照してください。 - 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が存在するルートにアクセスします。ターミナルには次のように表示されます:

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

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のドキュメントを参照してください。
productionまたはpreview環境に関連するデプロイメントのログを表示するには:
- Cloudflareダッシュボード ↗にログインし、アカウントを選択します。
- アカウントホームで、Workers & Pagesを選択します。
- Pagesプロジェクトを選択し、ログを表示したいデプロイメントに移動して、詳細を表示 > Functionsを選択します。
ログ記録は、すべての顧客(無料、有料、エンタープライズ)に利用可能です。
Functionsログには以下の制限があります:
- ログは保存されません。いつでもストリームを開始および停止して表示できますが、持続しません。
- 過去5分間にFunctionのリクエスト数が100を超える場合、ログは表示されません。
- FunctionsがバインドしているDurable ObjectsからのログはCloudflareダッシュボードに表示されます。
- 最大10クライアントが同時にデプロイメントのログを表示できます。これは、ダッシュボードセッションまたは
wrangler pages deployment tail呼び出しの組み合わせです。
未捕捉の例外をデバッグしている場合、ログ内のスタックトレース ↗に生成されたJavaScriptファイルの行番号が含まれていることがあります。Pagesのソースマップ ↗のサポートを使用すると、元のソースコードの行番号やシンボルに一致するスタックトレースを取得できます。
詳細な説明については、ソースマップとスタックトレースを参照してください。