ADVERTISEMENT

【Googleドキュメント】Apps Scriptの実行ログ確認!デバッグとパフォーマンス最適化

【Googleドキュメント】Apps Scriptの実行ログ確認!デバッグとパフォーマンス最適化
🛡️ 超解決

GoogleドキュメントでApps Scriptを使っていると、思い通りに動かなかったり、処理が遅くなったりすることがあります。そんなときに役立つのが実行ログの確認です。ログを見ればエラーの原因や処理のボトルネックが一目でわかります。この記事では、Apps Scriptの実行ログを確認する方法から、効率的なデバッグ手法、パフォーマンスを最適化するテクニックまでを詳しく解説します。

【要点】Apps Scriptのログ確認でエラー解決と速度改善

  • 「表示」→「ログ」で直近の実行履歴を確認: 標準のログ表示でエラーメッセージや出力内容を素早くチェックします。
  • console.log()とLogger.log()を使い分ける: console.logは構造化データの出力に適し、Logger.logは簡単な文字列出力に便利です。
  • スタックドライバログで詳細な実行プロファイルを取得: 各関数の実行時間や呼び出し回数を分析して、ボトルネックを特定します。

ADVERTISEMENT

Apps Scriptの実行ログとは

Apps Scriptの実行ログは、スクリプトが実行されたときに生成される記録です。エラーメッセージ、print文の出力、関数の呼び出し履歴などが含まれます。ログを確認すれば、どこでエラーが起きたか、どの処理に時間がかかっているかを正確に把握できます。ログには主に2種類あります。1つはエディタ内の「ログ」表示で見られる簡易ログ、もう1つはGoogle Cloud Platformの「スタックドライバロギング」で管理される詳細ログです。

実行ログを確認する手順

1. エディタ内のログを表示する

  1. スクリプトエディタを開く
    Googleドキュメントで「拡張機能」→「Apps Script」をクリックします。
  2. 関数を実行する
    実行したい関数を選択して「実行」ボタンをクリックします。
  3. 「表示」→「ログ」をクリックする
    実行後、メニューバーから「表示」→「ログ」を選ぶと、実行ログが表示されます。ここにはconsole.logやLogger.logで出力した内容とエラーメッセージが表示されます。

2. スタックドライバログを確認する

  1. Google Cloud Platformのコンソールを開く
    スクリプトエディタの「プロジェクトの設定」→「Google Cloud Platform (GCP) プロジェクト」のリンクからGCPコンソールに移動します。
  2. 「ロギング」→「ログ エクスプローラ」を選択する
    左側のメニューから「ロギング」→「ログ エクスプローラ」をクリックします。
  3. クエリを設定してログを表示する
    リソースの種類に「Apps Script スクリプト」を選び、必要に応じてフィルタを追加します。ログが一覧表示され、詳細なタイムスタンプやスタックトレースが確認できます。

デバッグに役立つ関数とテクニック

console.log()とLogger.log()の使い分け

Logger.log()は簡易的な文字列出力に適しています。console.log()はオブジェクトや配列の内容を構造化して出力できるため、複雑なデータのデバッグに便利です。どちらもエディタのログとスタックドライバの両方に出力されます。

Utilities.sleep()で処理時間を調整する

大量のAPI呼び出しを行う場合、レート制限を回避するためにsleepを挿入します。ただし多用すると全体のパフォーマンスが低下するため、必要最小限に留めます。

実行時間の計測

関数の実行時間を計測するには、開始時にDate.now()でタイムスタンプを取得し、終了時に差分を計算します。これをログに出力することで、どの処理に時間がかかっているか把握できます。

ADVERTISEMENT

パフォーマンス最適化のポイント

バッチ処理を活用する

スプレッドシートやドキュメントへのアクセスは1回の呼び出しでできるだけ多くのデータを処理します。Range.getValues()やRange.setValues()を使って配列で一括取得・書き込みを行いましょう。

キャッシュサービスを使う

CacheServiceを使うと頻繁に参照するデータを一時的に保存できます。同じデータを何度も取得する処理の高速化に効果的です。

トリガーの実行間隔を最適化する

時間主導型トリガーは必要以上に短い間隔で設定しないようにします。1分ごとではなく5分や10分ごとに変更するだけで、全体の負荷が減ります。

不要なトリガーやインストーラブルトリガーを削除する

使っていないトリガーが残っていると、意図しないタイミングでスクリプトが実行されることがあります。スクリプトエディタの「トリガー」画面で定期的に整理しましょう。

注意点

ログの保存期間と容量制限

エディタ内のログは直近の実行のみ保持されます。スタックドライバログは30日間保存されますが、容量に上限があります。大量のログを出力すると古いログが削除されるため、必要なログだけを出力するように心がけましょう。

スタックドライバのコスト

標準のログは無料ですが、スタックドライバの詳細ログは一定量を超えると課金される場合があります。無料枠を超えないように、開発時のみ利用するなど計画的な運用が必要です。

エラーハンドリングの重要性

ログに頼りすぎず、try-catchブロックでエラーを適切に処理しましょう。ユーザーにわかりやすいエラーメッセージを表示する工夫も大切です。

コンソールログとスタックドライバログの違い

項目 標準ログ(エディタ内) スタックドライバログ
保存期間 最新の1回分 最大30日間
詳細度 簡易(テキストのみ) 詳細(JSON、タイムスタンプ、スタックトレース)
アクセス方法 スクリプトエディタの「表示」→「ログ」 GCPコンソールのログエクスプローラ
コスト 無料 一定量まで無料、超過時課金

まとめ

Apps Scriptの実行ログを確認することで、エラーの原因を特定し、パフォーマンスのボトルネックを発見できます。console.logやLogger.logを使い分けて必要な情報を出力し、スタックドライバで詳細な分析を行いましょう。バッチ処理やキャッシュサービスを導入すれば処理速度が向上します。実際にログを活用して、スクリプトを効率的にデバッグ・最適化してみてください。


ADVERTISEMENT

📄
Googleドキュメントトラブル完全解決データベースこの記事以外にも、書式・共有・Apps Script・引用など様々な困りごとへの解決策をまとめています。逆引きに活用してください。
この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。