ランタイムログの書き込み
Cloud Functions には、デフォルトで簡単なランタイムのロギング機能が含まれています。stdout
または stderr
に書き込まれたログは、Cloud Console に自動的に表示されます。より詳細なロギングを行うには、Cloud Logging クライアント ライブラリを使用します。
デフォルトでは、ログのペイロードは次のスニペットのように単純なテキスト文字列です。この文字列は textPayload
に格納されています。
Node.js
ほとんどのログエントリにはログレベルが関連付けられていません。たとえば、次のようなものです。console.log()
、console.info()
、console.warn()
、またはconsole.error()
を使用して出力されたログstdout
またはstderr
に直接書き込まれたログ
内部システム メッセージのログレベルは DEBUG
です。
Python
- 標準出力または標準エラーに出力されるログにはログレベルが関連付けられていません。
- 内部システム メッセージのログレベルは
DEBUG
です。
Go
stdout
またはstderr
に出力されるログにはログレベルが関連付けられていません。- 内部システム メッセージのログレベルは
DEBUG
です。
Java
stdout
またはstderr
に出力されるログにはログレベルが関連付けられていません。- 内部システム メッセージのログレベルは
DEBUG
です。
C#
stdout
(Console.WriteLine
など)やstderr
(Console.Error.WriteLine
など)に書き込まれたテキストにログレベルはありません。- ASP.NET Core のログレベルは、次のように Cloud Logging レベルにマッピングされます。
LogLevel.Trace
とLogLevel.Debug map
は Cloud LoggingDEBUG
にマッピングされます。LogLevel.Information
は Cloud LoggingINFO
にマッピングされます。LogLevel.Warning
は Cloud LoggingWARNING
にマッピングされます。LogLevel.Error
は Cloud LoggingERROR
にマッピングされます。LogLevel.Critical
は Cloud LoggingCRITICAL
にマッピングされます。
Ruby
ログエントリには、関連付けられたログレベルはありません。
構造化ログの書き込み
上記のデフォルトのテキストログには、関連するログレベルがありません。ログレベルなどの特定のフィールドをログエントリに含めるには、構造化されたデータを使用し、シリアル化された JSON 形式の 1 行で記述します。これは Cloud Logging によって取得され、解析された後、textPayload
ではなく jsonPayload
に配置されます。データは JSON 辞書として構成されます。以下のスニペットは、これらのログエントリの作成方法を示しています。
Node.js
Python
構造化ロギングは、Python 3.8 以降でサポートされています。
Go
各ログエントリの構造は、Entry
タイプによって指定されます。
Entry 構造体がログに記録されると、String
メソッドが呼び出され、Cloud Logging で想定されている JSON 形式にマーシャリングされます。
Java
logback.xml
の構成で Logstash JSON Encoder を有効にして、Logback と SLF4J での JSON ロギングを有効にします。
メッセージ内の特別な JSON フィールドの処理
特殊フィールドのドキュメントで説明されているように、構造化されたデータを JSON 辞書として提供すると、いくつかの特殊フィールドが jsonPayload
から削除され、生成された LogEntry
の対応フィールドに書き込まれます。
たとえば、JSON に severity
プロパティが含まれている場合、jsonPayload
から削除され、代わりにログエントリの severity
として表示されます。message
プロパティが存在する場合は、ログエントリのメイン表示テキストとして使用されます。
ランタイムログの表示
コマンドライン ツールの使用
Cloud Functions のログは、Cloud Logging UI および gcloud
コマンドライン ツールを介して表示できます。
gcloud
ツールでログを表示するには、logs read
コマンドを使用します。
gcloud functions logs read
特定関数のログを表示するには、引数として関数名を入力します。
gcloud functions logs read FUNCTION_NAME
特定の実行内容を確認するために、ログを表示することもできます。
gcloud functions logs read FUNCTION_NAME --execution-id EXECUTION_ID
すべてのログ表示オプションについては、logs read
のヘルプをご覧ください。
gcloud functions logs read --help
ロギング ダッシュボードを使う
Cloud Console から Cloud Functions のランタイムログを表示することもできます。
Logging API の使用
Logging API でもランタイムログの書き込みや取得を行うことができます。Cloud Logging クライアント ライブラリには、Logging API 用のインターフェースが用意されています。
Node.js
詳細については、Node.js クライアント ライブラリのリファレンスをご覧ください。Python
詳細については、Python クライアント ライブラリのリファレンスをご覧ください。Go
詳細については、Go クライアント ライブラリのリファレンスをご覧ください。Java
詳細については、Java クライアント ライブラリのリファレンスをご覧ください。C#
Ruby
Java のその他のロギング オプションについては、Java ロギングをご覧ください。
ランタイムログの処理
Cloud Logging のイベントに応答するには、そのログを Cloud Functions の関数に転送します。詳細については、Cloud Logging でのセカンド パーティ トリガーページをご覧ください。
ビルドイメージのログの表示
デプロイ プロセスのビルドイメージのステップのログも確認できます。リンクをクリックして詳細をご確認ください。