Google Apps Script(GAS)において、Logger.log()
によって出力されたログを「まとめて文字列として取得する」ことはできません。
Logger.log()
で記録されたログは、開発者コンソール上でのデバッグ専用であり、スクリプト内から参照したり取得したりするAPIは用意されていません。Logger.getLog()
のような関数は存在しません。ログをスクリプト内で再利用したい場合は、以下のような自前のログ機構を使う方法が現実的です。
const myLogger = [];
function myLog(message) {
const timestamp = new Date().toISOString();
const entry = `[${timestamp}] ${message}`;
myLogger.push(entry);
}
function exampleFunction() {
myLog("処理を開始します");
myLog("データを取得します");
// 何か処理
Utilities.sleep(500);
myLog("処理が完了しました");
// まとめて表示
const allLogs = myLogger.join('\\\\n');
Logger.log(allLogs);
}
この方法であれば、myLogger
に貯めたログを後からまとめて出力・メール送信・保存などに利用できます。
MailApp.sendEmail({
to: "[email protected]",
subject: "ログレポート",
body: myLogger.join('\\\\n')
});
必要であれば、Spreadsheet や Google Drive に保存する実装も可能ですので、お気軽にご相談ください。