GCPで提供されているFaaS (Functions as a Service)、Cloud Functions ではちょっとしたスクリプトやバッチ(「関数」と呼ばれる)をクラウド上で実行でき、十分な無料枠も準備されているので、個人ユースでもとても便利なサービスです。
Cloud Functions で関数を実行した結果を確認するために、GCPのログ管理サービス Cloud Logging へログを出力できます。
CLoud Logging に保管されたログは GCP のスマホアプリで確認したりもできますが、全てのログを表示すると確認が不要なログも多く表示されてしまい、必要な情報が埋もれてしまいます。
そこで、構造化ログ として出力することで、ログ毎にレベルを設定し、絞り込みをして必要なログのみを表示させることが可能です。
ログの作成、表示、処理 - Google Cloud Functions に関するドキュメント
しかし、GCPの公式ドキュメントを読むと Cloud Logging クライアント ライブラリ とか Logging API とか書いてあってよく分からなくなった(あとで使い分けを理解した)ので、サクッと使えるように一番簡単な方法をまとめてみました。
※ Cloud Functions だけでなく、Cloud Run でも同じ方法が使えるようです。
結論
標準出力にJSONで出力する
1
{"severity":"INFO","message":"This is info message."}
"severity"
の値にログレベル、"message"
の値にログテキストを指定する。
GCP側で "severity"
の値を読み取って、ログにレベルを設定してくれる。