【Google Apps Script (GAS)】ログを出力する方法

2019年12月15日Google Apps

Google Apps Scriptでログを出力する方法はいくつかあります。
出力したログの確認方法も出力方法次第で変わってきます。

ログの出力方法とそのログの確認方法についてまとめてみました。

Loggerクラスを使用する

スポンサーリンク

Loggerクラスを使用することで、簡単にログを出力できます。
確認する方法も簡単でスクリプトエディタの「表示」→「ログ」から確認できます。

Loggerクラスを使用して出力したログは次に処理が呼ばれるとクリアされてしまいます。
なので、開発時のデバッグに使用するか、ファイルなどに出力する処理を記述するとログを残すことができます。

log

Logger.log()を使って、ログを出力することができます。メッセージをそのまま指定するパターンと、書式設定された文字列を出力するパターンが用意されています。

function myFunction() {
  // ログを出力する
  Logger.log("これはログです");
  // ログを出力する
  var name = "太郎";
  Logger.log("こんにちは!%sさん", name);
}

おまけ

ログを出力する以外に、ログをクリアしたり出力したログを取得することができます。

ログをクリアする

function myFunction() {
  // ログをクリアする
  Logger.clear();
}

ログを取得する

Loggerクラスで実行した場合は、次の実行が処理されるとログがクリアされてしまいます。
Loggerクラスで出力したログを取得し、ファイルに書き込んでおくことで、クリアされずに残ります。

function myFunction() {
  // ログを出力する
  Logger.log("これはログです");
  // ログを出力する
  var name = "太郎";
  Logger.log("こんにちは!%sさん", name);
  // ログをファイルに出力する
  DriveApp.createFile('log', Logger.getLog(), MimeType.PDF);
}

ファイルの作成については下記の記事を参考にしてください。

consoleクラスを使用する

consoleクラスを利用するとApps Script ダッシュボードでログを確認できるようになります。

error

エラーログを出力します。エラーが発生した際に出力するとよいです。

function myFunction() {
  // エラーログを出力する
  console.error("エラーが発生しました。");
  // エラーログを出力する
  console.error("%sでエラーが発生しました。", "myFunction");
}

Apps Script ダッシュボードで確認した結果がこちらになります。「エラー」と出力されます。
エラーログは赤い背景色で表示してくれます。

info

トレースログを出力します。関数の開始時や終了時などに出力したり、要所で出力するログです。

function myFunction() {
  // トレースログを出力する
  console.info("トレースログです。");
  // トレースログを出力する
  console.info("%sのトレースログです。", "myFunction");
}

Apps Script ダッシュボードで確認した結果がこちらになります。「情報」と出力されます。

log

デバッグログを出力します。

function myFunction() {
  // デバッグログを出力する
  console.log("デバッグログです。");
  // デバッグログを出力する
  console.log("%sのデバッグログです。", "myFunction");
}

Apps Script ダッシュボードで確認した結果がこちらになります。「デバッグ」と出力されます。

warn

警告ログを出力します。

function myFunction() {
  // 警告ログを出力する
  console.warn("警告ログです。");
  // 警告ログを出力する
  console.warn("%sの警告ログです。", "myFunction");
}

Apps Script ダッシュボードで確認した結果がこちらになります。「警告」と出力されます。
エラーログはオレンジの背景色で表示してくれます。

time

console.time(label)からconsole.timeEnd(label)までの時間を計測します。
console.timeEnd(label)実行時にApps Script ダッシュボードに「label名 + 実行時間」を表示します。

function myFunction() {
  // 時間計測を開始する
  var label = 'myFunction() time';
  console.time(label);
  :
  : ここに処理を記載する
  :
  // 時間計測を終了する
  console.timeEnd(label);
}