LoginSignup
9
6

More than 3 years have passed since last update.

GASでログ出力する(主にconsoleクラス)

Posted at

このポストの目的

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によるログ出力です。");

「表示」→「ログ」での確認結果です。
image.png

consoleの利用方法

console.log を利用すると、こんなイメージです。

console.log("consoleに向けたログ出力です。");

「表示」→「StackDriver Logging」での確認結果です。
image.png

consoleのログレベル

consoleにはログレベルごとに関数が用意されています。

console.log("[LOG]consoleに向けたログ出力です。");
console.info("[INFO]consoleに向けたログ出力です。");
console.error("[ERROR]consoleに向けたログ出力です。");
console.warn("[WARN]consoleに向けたログ出力です。");

関数を使い分けると、StackDriver Loggingでも色分けされて識別しやすくなります。
image.png

ログ出力メッセージの内容

Stringでも、FormatStringでも、オブジェクトでも出力可能です。オブジェクトは整形し出力してくれるため便利ですね。

console.log("[LOG]consoleに向けた%s出力です。", "ほげほげほげ");

var data = {
  param1: "なまえ",
   param2: true,
   param3: new Date()
};
console.log(data);

image.png

処理時間を計測できる

console.time()console.timeEnd()を組み合わせると、その間に挟んだ処理の所要時間を計測できます。

  var timelabel = "処理Aの所要時間";

  console.time(timelabel);

  //処理A(sleepで代替しています)
  Utilities.sleep(500);

  console.timeEnd(timelabel);

image.png

以上です。

9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6