Apps Scriptダッシュボードでconsoleクラスのログ出力を確認する方法とメリット

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

さて、みなさんはGoogle Apps Scriptの開発や動作確認で「ログ」って使いますよね?

V8ランタイムがサポートされた現在、「console.log」をメインで使いますね。

【初心者向けGAS】ログを表示するconsole.logの使い方とテンプレート文字列
Google Apps Scriptの超入門シリーズ、GASプログラミングの基礎を学んでいっております。今回はログを表示するconsole.logの使い方とテンプレート文字列についてお伝えします。

実はconsole.log以外にも、ログを行うメソッドがあることはご存知ですか?

そして、それらはApps Script ダッシュボードでも確認できるんです。

ということで、今回からGASの実行ログを確認するconsoleクラスのメソッドとその使い方を紹介していきます。

まず、Apps Scriptダッシュボードでconsoleクラスによるログ出力を確認する方法とそのメリットをお伝えします。

では、行ってみましょう!

スポンサーリンク

ログ出力はどこで確認すべき?

スクリプトエディタのログの弱点

console.logメソッドでのログは、スクリプトエディタの「ログ」画面でも確認することができます。

多くの場合は、それで事足りますが。

ただ、例えば時限式トリガーで実行した場合、doGetやdoPostなどリクエストを受けて動作をさせた場合などを思い出してください。

それら一部のトリガーで動作させた場合、スクリプトエディタを開いて、ログを確認することができませんよね。

また、次に実行すると以前のログは消えてしまいます。

Apps Scriptダッシュボードによるログのメリット

そんなときに、Apps Scriptダッシュボードのログが活躍します。

Apps Scriptダッシュボードでのログ確認には以下のメリットがあります。

  • 各種トリガーで動作した場合のログも記録できる
  • 過去7日間のログを残しておくことができる
  • ログの「レベル」をビジュアルで確認できる

…おお、使わない手はないですね!!

Apps Script ダッシュボードでログを確認する

では、Apps Scriptダッシュボードでログを確認してみましょう。

以下のようなスクリプトを用意します。

function logTest() {
  console.log('ログの内容');
}

これを実行して、通常とおり「表示」→「ログ」からログを確認したところがこちらです。

ログからApps Scriptダッシュボードへ

ログ画面の下部に「Apps Scriptダッシュボード」へのリンクがありますので、クリックしてみましょう。

すると、Apps Scriptダッシュボードに実行単位でログ出力されていて、展開するとそのログ内容も確認することができます。

Apps Scriptダッシュボードのログ

過去7日分について、以前に実行した際のログも残されていますので、さかのぼって確認したい場合に便利です。

consoleクラスとは?

さて、「consoleクラス」というのは、GASのスクリプトの実行ログを記録するための機能を提供するクラスです。

Script Servicesの「Baseサービス」というところに分類されていまして、いわばGASで横断的に使う基本中の基本の機能という位置づけです。

consoleクラスのメソッド

通常よく使うのは、console.logメソッドですが、それも含めてconsoleクラスでは複数のメソッドが提供されています。

メソッド レベル 説明
console.log(format, values) DEBUG システムの動作状況に関するログ
console.info(format, values) INFO 何らかの注目すべき情報
console.warn(format, values) WARN 警告。エラーとは言い切れないが近い事柄
console.error(format, values) ERROR エラーに関する事柄

4つとも、基本的な機能は一緒です。

formatには、Logger.logと同様にフォーマット文字列を指定できます。

フォーマット文字列には「%s」などをプレースホルダーとして、valuesに指定した複数の引数を順番に入れ込んで出力することができます。

ですが、V8ランタイム環境であれば、テンプレート文字列を用いることもできますので、そちらのほうが良いかもですね。

ログレベルとは

さて、これら4つのメソッドの何が違うかというと「ログレベル」です。

重要度や緊急度によってレベル分けがされているんですね。

上のほうがライトな確認用、下にいくほどヤバいレポートとなるわけです。

warnメソッド、errorメソッドあたりは、try~catchなどと組み合わせて使うことが多いんですかね。

consoleクラスの各メソッドのログ出力

では、実際にこれらconsoleクラスのログ出力について、確認してみましょう。

function logTest() {
  console.log('DEBUGレベルのログ: ログの内容');
  console.info('INFOレベルのログ: ログの内容');
  console.warn('WARNレベルのログ: ログの内容');
  console.error('ERRORレベルのログ: ログの内容');
}

実行!

スクリプトエディタのログを確認すると以下のような表示です。

スクリプトエディタでのレベル別のログ出力

どのメソッドも同じような出力です。

再度、Apps Scriptダッシュボードでも確認してみましょう。

すると、以下のように各メソッドによるログが確認できます。

Apps Scriptダッシュボードでのレベル別のログ出力

しかも、エラーは赤、警告はオレンジに色分けされるんですね。見やすい…!

まとめ

以上、Apps Scriptダッシュボードでconsoleクラスによるログ出力を確認する方法をお伝えしました。

トリガーを駆使するスクリプトはもちろん、少し規模のあるプロジェクトだと重宝しそうですね。

ただ、consoleクラスの便利機能…まだあります。

次回は、実行時間をログで確認する方法をお伝えします。

GASのconsoleクラスのメソッドで実行時間をログ出力する方法
GASでconsoleクラスを使ってApps Scriptダッシュボードにログを出力する方法を伝えしています。今回はGASのconsoleクラスのメソッドで実行時間をログ出力する方法を紹介します。

どうぞお楽しみに!

連載目次:GASのconsoleクラスでダッシュボードにログ出力

GASのログはconsole.logを使ってログ画面で確認をすることが多いわけですが、「consoleクラス」の他のメソッド群も使えたり、Apps Scriptダッシュボードで確認をすることで、その活用の幅が広がります。このシリーズでは、consoleクラスを使ったログを出力する方法をお伝えしていきます。
  1. Apps Scriptダッシュボードでconsoleクラスのログ出力を確認する方法とメリット
  2. GASのconsoleクラスのメソッドで実行時間をログ出力する方法
タイトルとURLをコピーしました