Google Apps Script、便利ですよね。プログラム走らせてて、デバッグしたいタイミングは当然あります。その時、デバッグログをとると非常に便利なんですが、時間主導型のトリガによってGASを走らせた時なんてログをどうやったらいいでしょうか。調べてみたのでまとめます。
自動実行させたプログラムのデバッグをしたい!
Google Apps Script、みなさん使ってますか。便利ですよね。私も使っていますが、時間トリガで自動実行させている時、たまーにうまく動かないんですよね。そんな時にログを取っておきたいんですが、どうしたらいいか、が今回のテーマです。
自分はちょこざいなことはしたくないのでなるべくドバーッとロギングができないかなーと方法はいくつか調べてみました。
方法1:console.logでログを残す。
やり方は簡単です。GASの中に以下の形でロギング出力をする様にします。
この一行追加するだけで「なんかのログ」を保存することができます。お手軽さはこれが一番。
で、確認はスクリプトエディタを開いて、「Stackdriver Loggin」を選択すると見ることができます。まぁなんてお手軽。
ですがこの手法、正確な文字数の制限は不明ですがあんまり出せない。自分は1万文字以上の文字列を出したいんす。まぁ、用途に応じて出してみて、文字数の制限に引っ掛からねければこの方法が一番お手軽なのでおすすめです。
方法2:googleのドキュメントに書き出す
次なる手段はGoogleドキュメントに書き出す手段です。これまた割と簡単出力です。
マイドライブの直下にログを出力するのであれば、以下2行で事足ります。
document.getBody().setText(“なんかのログ”);
これで、ドライブ直下にファイル名のドキュメントが出来上がります。開いてみると、「なんかのログ」が残っているはずです。
ファイル名を日付や時間にすれば、自動的に異なるファイルとして保存してくれるのでロギングの代わりになるはずです。
こんな感じにトップページにグイグイとファイルが自動的に作成されていきます。
この手法は先のconsole.logよりはデータを保存できますが、数十万はやはりダメでした…
方法3:ログをgmailで送る
さてお次はgmailでログを定期的に送る方法です。これまたGASなので、コード自体はとてもシンプルに記述することができます。
行数的には1行で済みますね。これだけでGmailが送られてくるのでなんとも便利。実績的には文字列を200000でsliceしたやつが送れたので結構遅れました。本当はもっと送りたかったんですが、500000でsliceしたテキストは送ることができませんでした。残念。
まとめ
今回ご紹介したデバッグログの残し方はGASだけにGoogleとの親和性高く、コーディング的にはほんと数行の世界です。まぁ便利。調べた範囲ではログの最大量はGmailで送ることでした。文字列をスライスして送れば全体送れますが、細切れでなく一塊のデータとして残したいのでgmailを活用することとします。
コメント