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.time と console.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.info、console.warn、console.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('処理終了');
}
このように info、warn、error を適切に使い分けることで、ログの可読性とトラブルシューティングの効率が大幅に向上します。
コメント
コメントを投稿