Help us understand the problem. What is going on with this article?

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

このポストの目的

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

以上です。

84zume
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした