GASでお手軽ログを取る

GAS(Google Apps Script)のWebアプリだと、もともとあるログは使いづらいので、ログファイルに書き出すコードを書いてみた。 最初は、スプレッドシートに書いていたんだけど、スループットが悪すぎて使い物にならなかったのでgoogleドキュメントに書いてみることにした。 ネットを見ると、スプレッドシートを読み書きするページはいっぱいあるけど、Googleドキュメントを読み書きするページは、あんまり見当たらない。 それでもそれらしいページを見つけて参考にしつつ書いてみたのが下のコード。 ログファイルを作り、そのIDでオープンしておく。 関数の外に書いておくと、いつの間にか実行してくれてるみたいで、この辺はボクには謎。 で、関数では、オープンしたファイルオブジェクトに対してパラグラフを追記していくイメージ。 ファイルの先頭に追加しているのだけど100ページを超えてもストレスは感じない。 引き数は、ログレベルとメッセージを2つ。 簡単な割に役立っている。

// ログファイルをオープンする logFile = DocumentApp.openById('1Hdhogehoge_dPQxVs4255887-ZAbR9Q'); function Logging(level, message1, message2) { // // ログ出力 // date Jun 10, 2019 // param level ログレベル // message1 メッセージ1 // message2 メッセージ2 // //--------------------------------------------------------------------------------- var actionDateTime = Utilities.formatDate( new Date(), 'Asia/Tokyo', 'yyyy-MM-dd HH:mm:ss'); var logData = actionDateTime + ' ' + level + '\t' + message1 + '\t' + message2; // 先頭に追加 // パラグラフを追加すると追加されたパラグラフのオブジェクトが返ってくる var newParagraph = logFile.insertParagraph(0, logData); newParagraph = newParagraph.setFontSize(8); // 文字サイズを設定 }

--

No comments: