星期三, 6月 17, 2026

[GAS] Log

在 Google App Script 內要記錄 log 的話,可以使用 Loggerconsole。Logger 是 GAS 早期專屬的簡易除錯工具,console 則是現代 JavaScript 原生標準日誌工具且支援日誌層(Severity),有 .log、.info、.warn、.error 可以使用。

簡易範例

輸出一個多層次複雜物件,包含字串、數字、巢狀物件與陣列
function demoObjectParsing() {
  // 多層次複雜物件,包含字串、數字、巢狀物件與陣列
  const orderData = {
    orderId: "A-2026-9981",
    totalAmount: 1700,
    customer: {
      name: "王小明",
      email: "ming@example.com"
    },
    items: [
      { productName: "無線滑鼠", price: 500 },
      { productName: "機械鍵盤", price: 1200 }
    ]
  };

  // 直接輸出差異比較 
  // Logger.log("--- 直接輸出差異比較 ---");
  Logger.log(orderData);
  console.log(orderData);

  // 使用 + 號串接文字 
  // Logger.log("--- 使用 + 號串接文字  ---");
  Logger.log("訂單資料為: " + orderData);
  console.log("訂單資料為: " + orderData); 

  // 使用 JSON.stringify 格式化
  //    第一個參數是物件
  //    第二個參數(取代函數)給 null
  //    第三個參數給 2 (代表縮排 2 格)
  Logger.log("--- JSON.stringify 格式化  ---");
  Logger.log("訂單資料為: \n%s", JSON.stringify(orderData, null, 2));
  console.log(`訂單資料為: 
${JSON.stringify(orderData, null, 2)}`);
}

直接輸出差異比較

Logger 文字輸出會糊成一團,console 會有一個簡易排版存在
使用 + 號串接文字

Logger 和 console 都會輸出 [object Object] 資訊,沒有辦法閱讀輸出內容
使用 JSON.stringify 格式化

避免截圖太長,該截圖只呈現一個結果就好
執行項目

這裡會有每次執行 Logger、console 紀錄的 log 資訊,但該 log 資訊並不會保留很久,官方文件 - Use the Apps Script execution log 說明為
These logs are intended for checks during development and debugging, and don't persist very long.
AI 解釋有明確指出是保留 7 天,但不可考單純紀錄參考

沒有留言:

張貼留言