開発チームがお届けするブログリレーです!他のメンバーの投稿はこちらからぜひチェックしてみてください!

はじめに

Google Apps Script(GAS)は、Google Spreadsheetの操作やWeb APIの作成など、様々な用途で活用できる便利なツールです。しかし、デバッグ時にログが表示されないという問題に遭遇することがあります。本記事では、そのような状況での対処方法について詳しく解説します。

ログの確認方法

通常のログ確認方法

GASのログは、基本的に以下の手順で確認できます:

  1. スクリプトエディタを開く
  2. 上部メニューの「実行」をクリック
  3. 「同時実行数」タブを選択

このタブでは、スクリプトの実行結果やエラーメッセージ、console.log()で出力したログなどを確認することができます。

ログが表示されない場合の原因

ログが表示されない主な原因として、以下が考えられます:

  • GASプロジェクトの作成直後
  • プロジェクトとSpreadsheetの紐付けが正しく行われていない
  • 権限設定の問題

対処方法

1. プロジェクトとSpreadsheetの紐付け

一般的な対処方法は、GASプロジェクトとSpreadsheetを正しく紐付けることです:

  1. スクリプトエディタで「プロジェクトの設定」を開く
  2. 「Google Cloud Platform プロジェクト」セクションで「プロジェクトを選択」をクリック
  3. 既存のプロジェクトを選択するか、新規プロジェクトを作成

この設定後、「Cloud のログ」や「Cloud のエラー」にアクセスできるようになります。
アクセスできるようになるまで、時間がかかる場合があります。

2. Spreadsheetへのログ出力

ログが確認できない場合の代替手段として、Spreadsheetに直接ログを出力する方法があります。以下のような関数を作成することで、デバッグ情報をSpreadsheetに記録できます:

function log(str) {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  // const sheet = SpreadsheetApp.openById('xxxxxxxxxxxxxxxxxxxxxxxxxxxx').getSheetByName('シート1');
  if (typeof str === "object") {
    const newRow = [JSON.stringify(str, null, 4)];
    sheet.appendRow(newRow);
  } else {
    const newRow = [str];
    sheet.appendRow(newRow);
  }
}

文字列とオブジェクトの両方に対応させていて、オブジェクトの場合は整形して出力します。出力は、スプレッドシートの最後の行に追記されます。

3. 権限設定の確認

GASプロジェクトとスプレッドシートを紐付けた後、スプレッドシートへのアクセス権限が失われる場合があります。この場合、以下の手順で権限を付与する必要があります:

  1. スクリプトエディタで「プロジェクトの設定」を開く
  2. 「「appsscript.json」マニフェスト ファイルをエディタで表示する」を有効化
  3. 以下のようにappsscript.jsonを編集:
{
  "timeZone": "Asia/Tokyo",
  "dependencies": {
  },
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8",
  "oauthScopes": [
    "https://www.googleapis.com/auth/spreadsheets"
  ]
}

まとめ

GASでログが表示されない場合の主な対処方法は:

  1. プロジェクトとSpreadsheetの正しい紐付け
  2. Spreadsheetへの直接ログ出力
  3. 適切な権限設定の確認

これらの方法を組み合わせることで、効率的なデバッグが可能になります。特に開発初期段階では、Spreadsheetへの直接ログ出力が確実な方法としてお勧めです。