earthpg:GAS専門のプログラミングスクール

初心者必見!Google Apps Scriptでエラーログを効率的に管理する方法

最近GASを始めたばかりなんだけど、スクリプトがちょっとでも間違ってるとすぐにエラーで…
猫男
猫男
catman
catman
「GASでのエラーログ管理」について教えてあげよう。スクリプトの改善が楽になるはずだ。

GASでのエラーログの基本

GASではエラーログを活用することで、スクリプトのデバッグを効率的に進めることができる。

エラーが発生したときに、その内容を記録しておけば、どこで何が起きたのかが明確になるからだ。

エラーハンドリングの基本

GASでエラーハンドリングを行うには、try-catch構文を使うのが基本だ。


 try {
   // エラーが発生するかもしれないコード
   var data = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data").getDataRange().getValues();
 } catch (error) {
   Logger.log("エラーが発生しました:" + error.message);
 }

エラーが発生した場合、catch内のコードが実行される。これにより、エラーメッセージをログに記録できる。

Loggerでエラーログを記録

GASでは、Loggerクラスを使ってエラーログを記録できる。

Logger.log("エラーメッセージをログに記録:" + error.message);

Logger.log()を使い、エラーメッセージやエラーが発生する直前の変数の状態を記録すると、デバッグがさらに効果的になるぞ。

Loggerを使えば、エラーの詳細がわかるんですね!これでスクリプトの問題の特定が早くなりそう。
猫男
猫男

エラーログの活用方法

エラーログは単に記録するだけでなく、分析し、改善に役立てることが重要だ。

エラーログを分析する

エラーの頻度や発生箇所を分析し、共通するパターンを見つけ出すことがポイントだ。

この分析により、スクリプトの問題を根本から取り除くことができる。

エラーログのデータをスプレッドシートで管理

エラーログはスプレッドシートに記録して管理することで、過去のエラー履歴を簡単に参照できる。


function logErrorToSheet(error) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ErrorLog");
  sheet.appendRow([new Date(), error.message]);
}

これにより、エラーの発生状況を視覚的に把握できるようになる。

スプレッドシートを使ってエラーログを管理すれば、後で見直しやすくなるんですね!効率的だ!
猫男
猫男

練習問題:GASでエラーログを管理する

以下のコードを改良して、エラー内容をLoggerとスプレッドシートに記録するスクリプトを書いてみよう。


function myFunction() {
  var data;
  
  try {
    data = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data").getDataRange().getValues();
  } catch (error) {
    // ここにコードを加えてエラーログを記録する
  }
}

 

 

解答と解説


function myFunction() {
  var data;
  
  try {
    data = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data").getDataRange().getValues();
  } catch (error) {
    Logger.log("エラーが発生しました:" + error.message);
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ErrorLog");
    sheet.appendRow([new Date(), error.message]);
  }
}

このスクリプトは、try-catchを使ってエラーが発生した際に、Logger.log()でエラーメッセージを記録し、さらにErrorLogシートにエラーの日時とメッセージを追加している。

  1. try-catch構文: エラー発生時にcatchブロックの処理を実行する。
  2. Logger.log(): エラーメッセージをコンソールに記録する。
  3. SpreadsheetApp.getActiveSpreadsheet().getSheetByName(): 記録用のスプレッドシートを取得し、エラーを追跡する。
  4. sheet.appendRow(): 新しいエラーログをシートに追加する。
catman
catman
これでGASのエラーログ管理がマスターできただろう。日々のスクリプト作業が効率的に進むようになるはずだぞ。自信を持って取り組んでみるといい。