Google Apps Scriptで書いたプログラムが期待通りに動かないとき、どこが間違っているのかを調べるにはログが欠かせません。ログにはコンソールログとExecutionログの2種類があり、それぞれ表示方法や用途が異なります。この記事では、これら2つのログの違いと確認手順を詳しく解説します。ログを使い分けることで、デバッグの効率が大幅に向上します。
【要点】Apps ScriptのログはコンソールログとExecutionログの2種類があり、確認方法や保持期間が異なります。以下に具体的なポイントをまとめます。
- コンソールログ:
console.log()やLogger.log()で出力したログ スクリプトエディタの「表示」→「ログ」から確認します。実行のたびに新しく表示され、保持されません。 - Executionログ: 関数の実行履歴を時系列で表示するログ スクリプトエディタの「実行」→「実行数」から過去の全実行を確認できます。標準で90日間保持されます。
- スタックトレースの確認: Executionログでエラーの詳細を追跡 エラー発生時はExecutionログの「エラーの詳細」をクリックすると、行番号付きのスタックトレースが表示されます。
ADVERTISEMENT
目次
Apps Scriptにおけるログの役割と2つの種別
Apps Scriptで作成したプログラムが正しく動作しているか確認するには、ログ出力が有効な手段です。ログは主に、プログラムの途中経過や変数の値、エラーメッセージを記録するために使います。Apps Scriptには大きく分けてコンソールログとExecutionログの2種類があります。コンソールログはスクリプトエディタで直接確認するリアルタイムのログです。一方、Executionログは過去の実行履歴を保管しており、エラーの詳細や実行時間を確認するのに便利です。それぞれの特性を理解し、目的に応じて使い分けましょう。
コンソールログを表示する手順
コンソールログは、関数内で出力したメッセージをその場で確認したいときに使います。ここでは、実際にコードを書いてログを表示する手順を解説します。
スクリプトエディタでコンソールログを確認する方法
- 関数にログ出力コードを追加します
スクリプトエディタで、console.log()またはLogger.log()を使ってログを出力します。たとえば、console.log("開始します");と書きます。 - 関数を実行します
スクリプトエディタの上部にある「実行」ボタンをクリックして、関数を実行します。 - ログを表示します
メニューの「表示」→「ログ」をクリックします。実行結果が表示されます。複数回実行すると、直前のログだけが表示されます。
Logger.logとconsole.logの違い
Logger.log() はApps Script独自の関数で、コンソールログに文字列を出力します。引数に指定した文字列をそのまま表示します。一方、console.log() はJavaScript標準の関数で、オブジェクトの内容を詳細に表示できる利点があります。たとえば、配列やオブジェクトを渡すと、その構造を展開して見られます。また、console.log() はスタックトレースを出力する console.trace() の利用も可能です。ただし、どちらも表示される場所は同じコンソールログです。用途に応じて使い分けるとよいでしょう。
Executionログを表示する手順
Executionログは、スクリプトが過去にどのように実行されたかを確認するための履歴です。エラーが起きたときの詳細や、実行にかかった時間を調べるのに役立ちます。
実行ログの表示方法
- スクリプトエディタを開きます
Googleスプレッドシートの「拡張機能」→「Apps Script」をクリックしてエディタを開きます。 - 「実行」メニューを開きます
左側のメニューで時計アイコン(「実行数」)をクリックします。Executionログの一覧が表示されます。 - 実行ログの詳細を表示します
一覧から確認したい実行をクリックすると、開始日時、実行時間、ステータス(完了/エラー)、ログ出力などが表示されます。
実行ログに表示される情報の見方
Executionログの各エントリには、以下の情報が含まれます。実行時間:関数の開始から終了までの時間です。長すぎる場合はコードの最適化を検討します。ステータス:正常終了は「完了」、エラー時は「エラー」と表示されます。ログ出力:関数内で console.log() などで出力したメッセージもここに表示されます。エラー発生時は「エラーの詳細」リンクからスタックトレースを確認できます。
ADVERTISEMENT
ログ活用の注意点とよくある疑問
ログを効果的に使うために、いくつかの注意点を押さえておきましょう。また、よくある質問についても解説します。
ログが表示されないときの対処法
コンソールログが表示されない場合、関数が正しく実行されているか確認してください。また、console.log() はブラウザの開発者ツールではなく、スクリプトエディタの「表示」→「ログ」で確認するものです。Executionログが表示されない場合は、権限不足やタイムアウトが考えられます。関数にトリガーを設定している場合、トリガーが正しく動作しているかも確認しましょう。
実行時間制限とログの出力制限
Apps Scriptには実行時間の制限があります。通常の関数は6分、ガントチャートやカスタム関数は30秒です。この制限を超えると強制終了され、ログは途中までしか残りません。ログの出力自体にも制限があり、1回の実行で出力できるログのサイズは約50KBまでです。大量のログを出力する場合は、出力間隔を調整するなどの工夫が必要です。
スタックトレースの確認方法
関数内でエラーが発生した場合、Executionログの該当エントリを開き、「エラーの詳細」をクリックします。スタックトレースが表示され、エラーが発生した行番号とコールスタックを確認できます。これにより、エラーの原因を特定しやすくなります。コンソールログではスタックトレースは表示されないため、エラー解析にはExecutionログが適しています。
コンソールログとExecutionログの比較表
| 項目 | コンソールログ | Executionログ |
|---|---|---|
| 表示場所 | スクリプトエディタの「表示」→「ログ」 | スクリプトエディタの「実行」→「実行数」 |
| 出力方法 | console.log() または Logger.log() |
自動で記録される(手動出力不要) |
| 保持期間 | 最新の実行のみ(過去ログは消える) | 標準で90日間 |
| スタックトレース | 不可 | 「エラーの詳細」から確認可能 |
| 主な用途 | リアルタイムデバッグ | 過去の実行確認・エラー解析 |
まとめ
この記事では、Apps ScriptのコンソールログとExecutionログの違いと確認方法を解説しました。コンソールログは実行中の変数値をすぐに確認したいときに使い、Executionログは過去のエラーや実行時間を調べたいときに活用します。特にExecutionログは90日間保持されるため、後から問題を追跡するのに便利です。今後スクリプトが期待通りに動かない場合は、まずExecutionログでエラーの有無を確認し、必要に応じてコンソールログで詳細を追ってみてください。また、console.log() と Logger.log() の使い分けもデバッグ効率を上げるポイントです。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
