このポストの目的
Google Apps Scriptを用いてアプリケーションを開発する際に利用するログ出力方式についてまとめます。
もとの情報はGoogleの開発者サイトのリファレンス(G Suite Developer / Logging )を参考にしています。調べた限り、便利度合いと利用の平易さからすると、consoleクラス一択で良いと思いましたので、主にconsoleクラスについてまとめます。
GASでのログ出力方法
GASでのログ出力方法は2種類あります。
- Loggerを利用する
- 出力したログはスクリプトエディタ上の「表示」→「ログ」で確認できます。
- 極めて簡易的なロガーで、 スクリプトエディタからの実行時にしか ログは見れない。
- consoleを利用する
- 出力したログはStackDriver Loggigで確認します。スクリプトエディタ上の「表示」→「StackDriver Logging」でアクセス可能。
- 後述しますが、ロガーとして最初からいろいろな機能が用意されています。
- トリガーや時間駆動実行時でも、StackDriver Loggingにログが出力される。
Loggerの利用方法
Logger.log
を利用すると、こんなイメージです。
Logger.log("Loggerによるログ出力です。");
consoleの利用方法
console.log
を利用すると、こんなイメージです。
console.log("consoleに向けたログ出力です。");
「表示」→「StackDriver Logging」での確認結果です。
consoleのログレベル
consoleにはログレベルごとに関数が用意されています。
console.log("[LOG]consoleに向けたログ出力です。");
console.info("[INFO]consoleに向けたログ出力です。");
console.error("[ERROR]consoleに向けたログ出力です。");
console.warn("[WARN]consoleに向けたログ出力です。");
関数を使い分けると、StackDriver Loggingでも色分けされて識別しやすくなります。
ログ出力メッセージの内容
Stringでも、FormatStringでも、オブジェクトでも出力可能です。オブジェクトは整形し出力してくれるため便利ですね。
console.log("[LOG]consoleに向けた%s出力です。", "ほげほげほげ");
var data = {
param1: "なまえ",
param2: true,
param3: new Date()
};
console.log(data);
処理時間を計測できる
console.time()
とconsole.timeEnd()
を組み合わせると、その間に挟んだ処理の所要時間を計測できます。
var timelabel = "処理Aの所要時間";
console.time(timelabel);
//処理A(sleepで代替しています)
Utilities.sleep(500);
console.timeEnd(timelabel);
以上です。