Google Apps Script で
Google スプレッドシート上に
調べた
インストールと 使い方
README.md
に
プロジェクトキー
プロジェクトキー
MYB7yzedMbnJaMKECt6Sm7FLDhaBgl_dE
を
使い方
スプレッドシートの
キー値を 指定、 スプレッドシートに ログを 書き出す 以下、 スプレッドシートの キー値を 指定すると、
スプレッドシートにログを 吐き出すようにできます。
ログシート名は未指定なので、 Log
シート にログを 書き込みます。 // Add one line to use BetterLog Logger = BetterLog.useSpreadsheet('your-spreadsheet-key-goes-here'); //Now you can log and it will also log to the spreadsheet Logger.log("That's all you need to do");
スプレッドシート名を
指定、 スプレッドシートに ログを 書き出す
以下、スプレッドシートの シート名称を 指定しています。
スプレッドシート名がnull
または、空だと、 SpreadsheetApp.getActiveSpreadsheet();
が呼び出され、
アクティブなスプレッドシートが 選択され、 その Logs
シートにログが 書き込まれます。
ちなみに、シートが なければ 作成され、 シートが 存在すれば、 その シートに 書き込まれます。
ヘッダ固定にする 設定とかまでしてくれるので、 初回は ライブラリ側の 処理の おまかせする 意味で、 シートは 存在しない ほうが いいかと 思います。 // Add one line to use BetterLog Logger = BetterLog.useSpreadsheet("", "Logs"); //Now you can log and it will also log to the spreadsheet Logger.log("That's all you need to do");
メッセージに
パラメータを 設定する
第一引数に%s
指定、第二引数以降に 設定値を 渡すことで、 メッセージに パラメータを 埋め込むことができます。 Logger = BetterLog.useSpreadsheet("", "Logs"); Logger.log("This is a %s", "pen"); ---------------------------------------------- 2017-08-05 23:26:13:593 +0900 005260 INFO This is a pen ----------------------------------------------
メッセージに
jsonオブジェクトを 設定する
ログのパラメータが Objectの 場合も、 ログ書き出しの 前に、 JSON.stringfy()
をしているようで、
大概のObject は ログに 書きだしてくれます。 Logger = BetterLog.useSpreadsheet("", "Logs"); Logger.log("This is a %s" , {"key" : "pen"}); ---------------------------------------------- 2017-08-05 23:28:17:970 +0900 000493 INFO This is a {"key":"pen"} ----------------------------------------------
ログの
日付フォーマットを 変更する
DATE_TIME_LAYOUT
の値を 変更する ことで、 ログの 日付フォーマットの 変更が できます。
日付フォーマットは、Utilities#formatDate
に指定可能な もの、
つまり java のSimpleDateFormat
に指定できる 日付フォーマットが 指定できます。 Logger = BetterLog.useSpreadsheet("", "Logs"); Logger.DATE_TIME_LAYOUT = "''"; Logger.log("That's all you need to do"); Logger.DATE_TIME_LAYOUT = "yyyy.MM.dd G 'at' HH:mm:ss z"; Logger.log("That's all you need to do"); Logger.DATE_TIME_LAYOUT = "EEE, MMM d, ''yy"; Logger.log("That's all you need to do"); Logger.DATE_TIME_LAYOUT = "h:mm a"; Logger.log("That's all you need to do"); Logger.DATE_TIME_LAYOUT = "hh 'o''clock' a, zzzz"; Logger.log("That's all you need to do"); Logger.DATE_TIME_LAYOUT = "K:mm a, z"; Logger.log("That's all you need to do"); Logger.DATE_TIME_LAYOUT = "yyyyy.MMMMM.dd GGG hh:mm aaa"; Logger.log("That's all you need to do"); Logger.DATE_TIME_LAYOUT = "EEE, d MMM yyyy HH:mm:ss Z" Logger.DATE_TIME_LAYOUT = "yyMMddHHmmssZ" Logger.log("That's all you need to do"); Logger.DATE_TIME_LAYOUT = "yyyy-MM-dd'T'HH:mm:ss.SSSZ" Logger.log("That's all you need to do"); Logger.DATE_TIME_LAYOUT = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX" Logger.log("That's all you need to do"); Logger.DATE_TIME_LAYOUT = "YYYY-'W'ww-u" Logger.log("That's all you need to do"); ---------------------------------------------- 2017-08-06 00:03:16:163 +0900 000657 INFO registTaskManageData START 000739 INFO That's all you need to do 2017.08.06 AD at 00:03:16 JST 000822 INFO That's all you need to do Sun, Aug 6, '17 000903 INFO That's all you need to do 12:03 AM 000980 INFO That's all you need to do 12 o'clock AM, Japan Standard Time 001059 INFO That's all you need to do 0:03 AM, JST 001163 INFO That's all you need to do 02017.August.06 AD 12:03 AM 001272 INFO That's all you need to do 170806000316+0900 001371 INFO That's all you need to do 2017-08-06T00:03:16.956+0900 001450 INFO That's all you need to do 2017-08-06T00:03:17.048+09:00 001542 INFO That's all you need to do 2017-W32-7 001636 INFO That's all you need to do ----------------------------------------------
Logシートの
最大行数を 変更する
SHEET_MAX_ROWS
を指定する ことで 変更可能です。
指定行数を超えると、 過去ログの シートを 持つ スプレッドシートが 作成されます。 Logger.SHEET_MAX_ROWS = 100;
Logシートの
セル幅を 変更する
SHEET_LOG_CELL_WIDTH
を指定する ことで 変更可能です。
指定した結果セル幅が 変わるかと 思ったのですが、 特に 変わりませんでした.. Logger.SHEET_LOG_CELL_WIDTH = 100;
Header部の
メッセージを 変更する SHEET_LOG_HEADER
を指定する ことで 変更可能です。 Logger.SHEET_LOG_HEADER = 'コマンド + ⬇️ と コマンド + ⬆️のクリックでトップ、ボトムに移動できます。';
JSON 文字列の
スペース数を 変更する
JSON_SPACES
を指定する ことで 変更可能です。 Logger.JSON_SPACES = 2;
LogLevelを
変更する
Logger.setLevel()
で指定できます。 ログレベルとvar Logger = BetterLog.useSpreadsheet("", "Logs"); Logger.setLevel("WARN");
して、 以下の 指定が 可能です。 //ref http://docs.oracle.com/javase/7/docs/api/java/util/logging/Level.html var Level = Object.freeze({ OFF: Number.MAX_VALUE, SEVERE: 1000, WARNING:900, INFO: 800, CONFIG: 700, FINE: 500, FINER: 400, FINEST: 300, ALL: Number.MIN_VALUE});
他のライブラリに ついて
Logger ライブラリ調べている
Tools for developers - Google Apps Script Examples
個人的に、
以上です。
コメント