Apps Script Advent Calendar 2017に App Maker 記事ばっかり書いてきたけど最後の日なので GAS ネタを書く。
以前 GAS のログ出力方法について記事を書いたのだけれど、このときは Stackdriver についてよく知らなかったので、Googleドキュメントに出力するというやり方で書いた。
Google Apps Scriptのログ設計 #gasja - Qiita
上記記事を書いた後に Stackdriver を使う機会があって、こいつはかなり便利 というのがわかったので Stackdriver と連携させるとどんな感じなるのかを解説する。
Stackdriver
Stackdriver には3種類ある。
- Stackdriver Logging
- Stackdriver Error Reporting
- Stackdriver Monitoring
本記事では Logging を使ったログ出力と、Error Reporting を使ったエラー報告(通知)について記述する。1
Stackdriver Logging
console を使ってログを出力
ログを出力するには console を使う。
動作確認用コード
次のような logTest
function を作成する。
※異なる log level 出力と、時間計測用の time, timeEnd が用意されている。
function logTest() {
console.time('LABELA');
console.log('log');
console.info('info:%s', 'フォーマットを指定することも可能');
console.warn('warn');
console.error('error');
console.timeEnd('LABELA');
}
実行&ログを確認
Run > Run Function で logTest
実行し、次の手順でログを確認する。
View > Stackdriver Logging
Stackdriver Logging 基本のキ
本記事は Stackdriver Logging の説明をするのが主旨ではないので最低限の事だけ記載しておく。2
- ログを更新(再取得)
- ログを自動で更新(自動で再取得)
- 簡易フィルター
- 高度なフィルター
- ログレベルでフィルター
- 時間でフィルター
- ログ表示方法を変える(自動で展開/降順昇順)
- 展開
Stackdriver Error Reporting
動作確認用コード
次のような errorReportTest
function を作成する。
※catch されなかった throw が Error Reporting に入ってくる。
function errorReportTest() {
throw 'エラーのテスト';
}
実行&ログを確認
Run > Run Function で errorReportTest
実行し、次の手順でエラーを確認する。
View > Stack Driver Error Reporting
すると次のようなエラーを確認できる画面が表示される。
Stackdriver Error Reporting 基本のキ
本記事は Stackdriver Error Reporting の説明をするのが主旨ではないので最低限の事だけ記載しておく。
- ステータスでフィルター(6と関連)
- エラーレポートを自動で更新(自動で再取得)
- エラーをメールで通知する
- フィルター
- 時間でフィルター
- ステータスを変更
ステータスは、解決したら Resolved
に変更して一覧から消す、みたいな使い方をする。
Logging と Error Reporting を利用したコード例とキャプチャ
それぞれを利用したコード例を記載する。
※Google Apps Scriptのログ設計 #gasja - Qiitaで書いたコードと比較して圧倒的にスッキリしているのがわかるかと思う。
コード
function myFunction() {
console.info('myFunctionStart');
// ここにメインの処理
throw 'エラーが発生1';
console.info('myFunctionEnd');
}
画面キャプチャ
Stackdriver Logging
Stackdriver Error Reporging
ちなみにメール通知をONにするとこんな感じ
参考サイト
Class console | Google Apps Script
Stackdriver Logging | Google Cloud Platform
Stackdriver Error Reporting | Google Cloud Platform