LoginSignup
10
8

More than 5 years have passed since last update.

Google Apps Script(GAS) でファイルにログ出力できるライブラリを作りました

Posted at

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を出してくれるとはかどります。

10
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
8