リアルタイムログを使うと、世界各地で発生したログイベントをほぼリアルタイムで確認できます。新しいデプロイの状態をすぐ把握したいときなどに役立ちます。
リアルタイムログは、呼び出しログ、カスタムログ、エラー、捕捉されていない例外を取り込みます。トラフィックが多いアプリケーションでは、リアルタイムログがサンプリングモードに入ることがあります。その場合、一部のメッセージは破棄され、ログに警告が表示されます。
デプロイ済みの任意の Worker に紐づくリアルタイムログを、Cloudflare ダッシュボードで表示します。
-
Cloudflare ダッシュボードで、Workers & Pages ページを開きます。
Workers & Pages を開く ↗ -
Overview で、対象の Worker を選びます。
-
Logs を選びます。
-
右側のナビゲーションで Live を選びます。
デプロイ済みの任意の Worker に紐づくリアルタイムログを、Wrangler で表示します。
- Worker プロジェクトのディレクトリに移動します。
npx wrangler tailを実行します。
ローカルのターミナルに、アプリケーションへの受信リクエストが出力されます。
各 wrangler tail ログの出力は、構造化された JSON オブジェクトです。
{
"outcome": "ok",
"scriptName": null,
"exceptions": [],
"logs": [],
"eventTimestamp": 1590680082349,
"event": {
"request": {
"url": "https://www.bytesized.xyz/",
"method": "GET",
"headers": {},
"cf": {}
}
}
}出力を jq ↗ などのツールにパイプすると、リクエストを検索・加工して、特定の情報を探せます。
npx wrangler tail | jq .event.request.url"https://www.bytesized.xyz/"
"https://www.bytesized.xyz/component---src-pages-index-js-a77e385e3bde5b78dbf6.js"
"https://www.bytesized.xyz/page-data/app-data.json"wrangler tail の動作は、用途に合わせてカスタマイズできます。利用できる設定オプションは wrangler tail のドキュメント を参照してください。
- リアルタイムログは Workers Logs を保存しません。ログを保存するには Workers Logs を使います。
- Worker のトラフィックが多いと、リアルタイムログがサンプリングモードに入ることがあります。その場合、一部のメッセージは破棄され、ログに警告が表示されます。
- Worker が使っている Durable Objects のログも、ダッシュボードに表示されます。
- 1 つの Worker のログを同時に閲覧できるクライアントは最大 10 です。ダッシュボードのセッションと
wrangler tailの呼び出しを合わせた数です。 wrangler tailを WebSocket イベントハンドラー と併用する場合、そのハンドラー内のconsole.logは、WebSocket クライアントが接続を閉じるまで表示されません。closeを受信すると、すべてのメッセージが一気にフラッシュされ、ターミナルにまとめて出力されます。
ログの永続化、フィルター、分析には Workers Logs を使えます。サードパーティへログを送るには、Workers Logpush または Tail Workers を使います。
- エラーと例外 — よくある Workers のエラーを確認できます。
- ローカル開発 — Worker をローカルで開発し、テストできます。
- Workers Logs — Cloudflare Workers が出力するログデータを収集、保存、フィルター、分析できます。
- Logpush — Workers Trace Event Logs を対応先へプッシュする方法を確認できます。
- Tail Workers — Tail Workers を接続してログを変換し、HTTP エンドポイントへ送る方法を確認できます。
- ソースマップとスタックトレース — Worker でソースマップを有効にし、スタックトレースを生成する方法を確認できます。