より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

Google Apps Scriptのconsole.logはWebコンソールではなく、Apps Scriptダッシュボードに出力する

遅ればせながら、Apps Script Advent Calendar 2019 - Qiitaの13日目として投稿させていただきます。

Google Apps Script初心者が、開発していた時の落とし穴の話。経験者には当たり前の話かもしれませんが。

/**
 * Hello Worldを出力します。
 */
function helloWorld() {
  console.log("Hello World");
}

console.log関数ですが、従来のデバッガの Web コンソールにメッセージを出力する訳ではありません。

Webアプリケーションとして動作させても、Chromeの開発ツールに出力されず、どうすればいいのだと悩んでいました。

f:id:rimever:20191227144726p:plain
右下には何も出ない。

が、よく調べると、Google Apps Scriptのconsole.logの内容は、Apps Script ダッシュボードに出力されます。

Ctrl+Enterもしくは表示-ログにApps Script ダッシュボードのリンクがあります。

f:id:rimever:20191227144933p:plain
Apps Script ダッシュボード をクリック

f:id:rimever:20191227145012p:plain
Hello Worldが出力されている。

consoleクラスにはerrorという関数も存在します。

/**
 * Hello Worldを出力します。
 */
function helloWorld() {
  console.error("Hello World");
}

すると、

f:id:rimever:20191227145212p:plain
エラーとして出力される

他にもwarn,info関数があります。使い分けると、なお良し。でしょう。

開発時に、想定通りに動作しないはつきものなので、適宜console.logを挟むといい感じです。

また、Logger.logという関数も存在します。

/**
 * Hello Worldを出力します。
 */
function helloWorld() {
  Logger.log("Hello World");
}

これは、Google Apps Scriptのエディタ上の表示-ログに出力されます。GAS Unitの結果などはこの画面に出力された方が手軽です。

f:id:rimever:20191227145710p:plain

参考記事

okawa.routecompass.net