アプリケーション ログの書き込み

App Engine で実行中のアプリケーションにリクエストが送信されると、リクエストとレスポンスの詳細が自動的に記録されます。これらの情報は、Google Cloud Platform Console の Stackdriver ログビューアで確認できます。

アプリのリクエストログとアプリケーション ログは、Stackdriver Logging エージェントによって収集されます。ログの保持ポリシーとログエントリの最大サイズについては、割り当てポリシーをご覧ください。ログを長期にわたって保存したい場合は、Cloud Storage にログをエクスポートするとよいでしょう。また、BigQuery や Pub/Sub にエクスポートして、ログをさらに処理することもできます。

使用可能なログのリストについては、App Engine フレキシブル環境のログをご覧ください。

アプリケーション ログの書き込み

アプリケーションがリクエストを処理するときに、そのロギング メッセージを stdoutstderr に書き込むことができます。出力には stdout、エラーには stderr を使用して、アプリケーション ログを作成します。これらのファイルは自動的に収集され、ログビューアで表示できます。この場合、ログビューアのフィルタリングに使用可能なログレベルが提供されないので注意してください。ただし、ログビューアには、テキストやタイムスタンプなどの他のフィルタが用意されています。サイズを制限するために、ログビューアでは最新のエントリのみが保持されます。

PSR-3 準拠のロガーをフェッチする psrLogger メソッドを使用して、ログエントリを書き込むことができます。

$logging = new LoggingClient([
    'projectId' => $projectId
]);
$logger = $logging->psrLogger('app');
$logger->notice($text);

アプリケーション ログの表示

アプリケーション ログを表示するには、ログビューアを使用します。

  1. GCP Console で [Stackdriver] > [ロギング] ページの順に移動します。

    ログビューア ページに移動

  2. ページ上部で、既存の GCP プロジェクトを選択します。

  3. プルダウンメニューから、リソースタイプとして [GAE アプリケーション] を選択し、App Engine ログを表示します。

ログビューアのプルダウン メニューやその他のコンポーネントを使用して、関連するエントリのログをフィルタリングまたは検索できます。詳細については、ログビューアのフィルタ インターフェースをご覧ください。

アプリケーション ログのフィルタリング

ログビューアでラベルまたはテキスト検索によってログエントリをフィルタリングする方法については、基本ログフィルタをご覧ください。

高度なログフィルタを作成して一連のログエントリを詳細に指定する方法については、高度なログフィルタをご覧ください。

ヒント: 特定のインスタンス、サービス、バージョンに関するログを表示するには、ログビューアでそのリソースの ID を使ってフィルタリングします。サービス ID とバージョン ID は、App Engine ダッシュボードで確認してください。

ログビューアでは、同じ trace で相互に関連付けられているログエントリを「親子」形式で表示できます。

次の手順でログエントリを相互に関連付けることができます。

  1. どのアプリログを request ログと関連付けるかを決めます。なお、この関連付けがうまく機能するためには、選択するアプリログのタイプが request ログのタイプと同じにならないようにする必要があります。

  2. アプリケーション コード内で、受信リクエストの X-Cloud-Trace-Context HTTP ヘッダーを探します。このヘッダーからトレース ID を抽出します。詳細については、Stackdriver Trace のサポートをご覧ください。

  3. アプリログのエントリの LogEntry trace フィールドに trace ID を設定します。想定されている形式は projects/[PROJECT_ID]/traces/[TRACE_ID] です。

ログエントリを相互に関連付けた後、次の手順で相互に関連しているログエントリを表示できます。

  1. ログビューアで App Engine ログを開きます。詳細については、アプリケーション ログの表示をご覧ください。

  2. ログエントリの左にある小さな黒い三角をクリックして、request ログを展開します。request ログとアプリログがネストされた形式で表示されます。

補足:

  • 親子関係の子に相当するログエントリの最も高い severity が最上位のエントリに自動的に適用されることはありません。この動作が必要な場合は、最も高い severity を最上位のエントリに手動で設定してください。
  • 最上位のログの httpRequest.requestUrl フィールドを設定してください。

API を使用したログの読み取り

フレキシブル環境で作成された App Engine ログを読み取るための API はありません。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

PHP の App Engine フレキシブル環境に関するドキュメント