Google Apps Script(GAS)。サーバいらずで、色々なプログラムが書けるので、結構利用する機会があると思う。
インターン生にサーバを提供せずにSlackのbotを作ってもらうときなどに非常に楽。
しかし、ログをファイルに出力するという普通のサーバプログラムでは当たり前のようなことも、結構面倒だった。
探しても簡単に実現できそうなライブラリがなさそうなので、自分で作ってみた。
Google Apps Script(GAS) 用ファイルへのログ出力ライブラリ FileLogger
下記 Github で公開しました。
https://github.com/seteen/google-apps-script-file-logger
何ができる?
ログ用のファイルを自動で、スクリプトと同階層のフォルダに作成し、そこに対してログ出力が追記されるようになる。
自動でログがファイルに出力されるので、例えば何かしらのエラーが発生したときなどにログが参照できるようになります(通常のサーバプログラムでは当たり前に存在する機構)。
インストール
Google Apps Script の画面で、
メニューの
リソース -> ライブラリ
と選択。
ライブラリを追加、の入力に下記を入力して追加ボタンを押す。
1bWIXL3PmJQdgAjvUxY_qxStfTIdIMe7qwIqHq78XXzL3zyyVuhVvhI1S
バージョンは最新に指定。
仕様
FileLogger
は、関数をひとつだけ持つというシンプルなものにした。
FileLogger.logging(callback)
FileLogger.logging
は パラメータとして callback
を持つ。
この callback
が終わった時に、それまでに Logger
(Google Apps Script標準のロガー) で出力されたログを全てファイルに吐き出す。
出力されるファイルは、実行スクリプトがあるフォルダーに script.log
という Google Document で作成される。
もしすでに script.log
が存在する場合は、ログが追記され、存在しない場合は作成されてログが書き込まれる。
使い方
使い方はこんな感じ。例えば、 myFunction
というのが実行したい関数だとすると、下記のような書き方をする。
function myFunction() {
FileLogger.logging(function(){
// your code here.
Logger.log('test log');
});
}
こうすることで、 test log
というログが script.log
に書き込まれる。
もっと工夫したらもっと便利なものができるのかもしれないが、こういう機能が欲しい、という人はGithubにIssueを作るかPRを出してくれるとはかどります。