ログの書き込みと表示

このページでは、App Engine アプリで使用可能なログと、ログエントリの作成方法、表示方法について説明します。

App Engine では次の 2 種類のログを収集します。

  • リクエストログ: アプリに送信されるリクエストのログ。App Engine ではリクエストログに自動的にエントリを作成します。

  • アプリログ: このページで説明されているように、サポートされているフレームワークまたはファイルに書き込むログエントリ。

App Engine ではこれらのログを Cloud Logging エージェントに自動的に送信します。ログは、ログビューア、コマンドライン、またはプログラムで表示できます。

アプリのログの書き込み

ログエントリを書き込むには、Ruby 用 Cloud Logging クライアント ライブラリを使用することをおすすめします。手順とコードサンプルについては、Ruby 用 Cloud Logging の設定をご覧ください。

オプション: 構造化ログの stdoutstderr への書き込み

おすすめの方法の代わりに、簡単なテキスト文字列を stdoutstderr に送信できます。文字列は、ログビューア、コマンドライン、Cloud Logging API にメッセージとして表示され、メッセージを発行した App Engine のサービスとバージョンに関連付けられます。

ログビューアでこれらの文字列を重要度でフィルタするには、構造化データとしてフォーマットする必要があります。詳細については、構造化ロギングをご覧ください。

アプリログのエントリをリクエストログに関連付ける場合は、構造化アプリログのエントリにリクエストのトレース ID を含める必要があります。トレース ID は X-Cloud-Trace-Context リクエスト ヘッダーから抽出できます。構造化ログエントリで、ID を logging.googleapis.com/trace という名前のフィールドに書き込みます。X-Cloud-Trace-Context ヘッダーの詳細については、リクエストを強制的にトレースするをご覧ください。

Cloud Run のドキュメントで、トレース ID を使用した構造化ログエントリの書き込みの例をご覧ください。App Engine アプリでも同じ手法を使用できます。

ログの表示

ログビューアを使用して、アプリケーション ログとリクエストログを表示できます。

  1. Cloud Console の [ログビューア] に移動します。

    ログビューアに移動

  2. ページの上部にある既存の Google Cloud プロジェクトを選択します。

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

  4. リクエスト ログエントリに関連付けるアプリログ エントリを確認するには、次のようにします。

    1. セレクタ メニューから httpRequest.requestUrl ログを選択します。

    2. リクエスト ログエントリを展開します。そのリクエストに関連するアプリログがリクエストログ エントリの下に入れ子になって表示されます。

    単純なテキスト エントリを標準出力に送信する場合、ログビューアを使用して重要度でアプリエントリをフィルタすることや、特定のリクエストに対応するアプリログを表示することはできません。ログビューアでは、テキストやタイムスタンプなど、他のタイプのフィルタを使用することもできます。

ログビューアでは、App Engine サービス、バージョン、その他の条件でフィルタリングできます。ログで特定のエントリを検索することもできます。詳細は、ログの表示をご覧ください。

コマンドラインを使用したログの表示

App Engine のログをコマンドラインから表示するには、次のコマンドを使用します。

gcloud app logs tail

詳細については、gcloud app logs tail をご覧ください。

プログラムによるログの読み取り

プログラムでログを読み取るには、次のいずれかの方法を使用します。

料金、割り当て、ログの保持ポリシー

リクエストログとアプリログの両方に適用される料金については、Cloud Logging の料金をご覧ください。

ログの保持ポリシーとログエントリの最大サイズについては、割り当てと上限をご覧ください。ログを長期間保存する場合は、Cloud Storage にログをエクスポートできます。ログをさらに処理するために、BigQuery や Pub/Sub へエクスポートすることもできます。

ログリソース使用状況の管理

アプリのコードからログエントリの書き込み量を調整することで、アプリログからロギング アクティビティの量を制御できます。リクエストログは自動的に作成されるため、アプリに関連付けられたリクエスト ログエントリの数を管理するには、Cloud Logging のログ除外機能を使用します。