スキップしてメイン コンテンツに移動

GASでログと時間測定

GASでログと時間測定

GAS基礎とLogger活用の基本

Google Apps Script(GAS)は、Google Workspace のサービスを自動化するための強力なツールです。まずは GAS の基本構文と実行環境を理解しましょう。スクリプトエディタで function main() {} を作成し、Run ボタンで実行できます。デバッグ時に便利なのが Logger です。Logger.log('メッセージ'); と書くだけで、実行ログに出力されます。ログは View → Logs で確認でき、Logger.getLog() で文字列として取得も可能です。

例として、スプレッドシートのデータを取得し、ログに出力する簡単なスクリプトを示します。

function logSheetData() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const data = sheet.getDataRange().getValues();
  Logger.log('取得したデータ: %s', JSON.stringify(data));
}

このように Logger を活用することで、スクリプトの動作確認やバグの原因追跡が容易になります。

処理時間計測とパフォーマンス最適化

Apps Script では console.timeconsole.timeEnd を使って処理時間を計測できます。これにより、どの部分がボトルネックになっているかを定量的に把握できます。console.time('label'); でタイマーを開始し、console.timeEnd('label'); で終了時に経過時間をログに出力します。

以下は、配列のソート処理を計測する例です。

function measureSortTime() {
  const arr = Array.from({length: 10000}, () => Math.random());
  console.time('sortTime');
  arr.sort();
  console.timeEnd('sortTime'); // 例: sortTime: 12.34 ms
}

計測結果をもとに、アルゴリズムの変更や API 呼び出しの最適化を行うことで、全体の パフォーマンス を向上させることができます。特に外部サービスへのリクエストは時間がかかるため、必要最低限に絞ることが重要です。

ログレベルの使い分けと実践

Apps Script では console.infoconsole.warnconsole.error など、ログレベルを使い分けることができます。これにより、開発時と本番時でログの重要度を調整できます。

  • info:一般的な情報ログ。処理の進行状況を示す。
  • warn:注意が必要な状態。例外が発生しないが、将来的に問題になる可能性がある。
  • error:エラー発生時に使用。処理が停止したり、重大な問題が起きた場合に出力。

実際のコード例を示します。

function logLevelsDemo() {
  console.info('処理開始');
  try {
    // 何らかの処理
    if (Math.random() > 0.5) {
      throw new Error('サンプルエラー');
    }
    console.warn('予期しない値が検出されました');
  } catch (e) {
    console.error('エラーが発生しました:', e);
  }
  console.info('処理終了');
}

このように infowarnerror を適切に使い分けることで、ログの可読性とトラブルシューティングの効率が大幅に向上します。

この記事はAIによって作成されました。

コメント