【Logger.log】処理結果やデータなどをログとして出力する

GoogleAppsScript

【Logger.log】は

Google Apps Scriptでログを出力させるためのコード

です。

公式リファレンスの該当ページはこちら

基本情報

クラス

【Loggerクラス】

お気づきの方もいらっしゃるかもしれませんが、Logger.log()は「Loggerクラスからlog()メソッドを呼び出す」コードになります。

Loggerは他にもclear()やgetLog()などのメソッドを持つ立派なクラスです。

他のメソッド紹介記事と表記を統一するのであれば、本記事のタイトルには「log()」と書いておくべきなのですが、馴染みやすさ、探しやすさを考慮して、本記事のタイトルは「Logger.log()」にしております。

 

記述方法

Logger.log()

記述方法はとても簡単で、上記のように出力させたい文字列や変数などをカッコ内に記述するだけです。

 

Logger.log(format, values)

また、Logger.logには引数となる値を以下のように記述することもできます。

 

formatの部分に記載した内容で「%s」というワードがあることをお気づきでしょうか。ログの出力時にvaluesで指定された値や変数などがformatの部分に記述された%sと置き換えられます。

また、formatに記述する%sはいくつでも設定することが可能です。その場合、値や変数などを%sから置き換える数だけvaluesの部分に記述しておく必要があります。そのように複数のvaluesの記述が必要な場合はカンマ区切りで値を記入していきます。

valuesには数式を挿入しても構いません。

 

出力したログの確認方法

出力したログはスクリプトエディタメニューの「表示」>「ログ」から確認することができます。

loggerlog02

 

このように、出力時刻と出力結果とが表示されます。

loggerlog01

戻り値

【Logger】

Logger.logの戻り値は少し特殊で、出力されたログデータはLoggerクラスの中に記録されていきます。

ログとして出力された内容を取得することができるgetLogメソッドというものがあるのですが、こちらはLogger.getLog()という書き方で書いてあげるとログデータを取得することができます。

 

基本的に、戻り値の内容を活用するには、戻り値を取得することができるメソッドに続いて必要なメソッドを書き続けるか、一旦変数に格納してその変数にメソッドを使うというパターンが普通ですが、上記のようにLoggerについてはLoggerクラス自身にデータが貯まる、とイメージしておいてください!

 

使用例

開発・デバッグ時の出力確認

ログの出力は開発やデバッグ時の出力確認によく用いられます。

ログ出力についての記述を間違えない限りは、どこにLogger.logを入れてもプログラム上は問題が起こることはほとんどないため、調べたいなと思ったところにサッとLogger.logを差し込んで、期待する出力結果が出る計算式などを記入すればOKです。

(あまり良い例を書くことができなかったのですが…)例えば、上記のようにスプレッドシートから値を取得して(上記の例では5を取得)、その数に5をプラスしたものをGmailで送信するスクリプトを書いたケースです。

本来であれば10という出力結果を得たいのですが、思うような結果が出ないとします。

(上記の場合、resultを求める数式でプラスされる5が値としてではなく文字列としてプラスされているために55という出力結果になります)

上記ではGmailApp.sendEmailの前にLogger.logを入れてresultの値を確かめています。Logger.logの結果によるとこちらでも55という結果が出力されることがわかりますので、どうやら、resultを求めた計算式に問題がある、ということがわかります。

 

このように、スクリプトの中にLogger.logを挿入するわけですが、スクリプトの流れに影響を与えることなく、スクリプト処理の途中段階の変数の値などをログで確認することができます。

関連メソッド

以下のメソッドも確認しておくと、よりLogger.log()を活用することが可能です。(後日追加予定)

yoshi

JavaScript、Google Apps Scriptがメイン。Pythonもちょっとだけ。Google Apps Script開発、Pythonスクレイピングなどをする機会が多いです。ご依頼なども承っております。 記事内容についてのご意見・ご指摘などいただけますと幸いです。

シェアする

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


コメントする