Class Logger

Logger

如果指令碼與標準 Cloud 專案相關聯,這個類別可讓開發人員寫入執行記錄和 Google Cloud Logging。在 Cloud Logging 中,這個類別是結構化記錄和 jsonPayload 支援功能的首選。如要使用時間記錄功能,請使用 console

方法

方法傳回類型簡短說明
clear()void清除記錄。
getLog()String傳回目前記錄中完整的訊息清單。
log(data)Logger將資料寫入記錄。
log(format, values)Logger使用提供的格式和值,將格式化的字串寫入記錄主控台。

內容詳盡的說明文件

clear()

清除記錄。


getLog()

傳回目前記錄中完整的訊息清單。這個方法可用於儲存或透過電子郵件傳送指令碼執行期間產生的完整記錄輸出內容。

// Generate a log, then email it to the person who ran the script.
const files = DriveApp.getFiles();
while (files.hasNext()) {
  Logger.log(files.next().getName());
}
const recipient = Session.getActiveUser().getEmail();
const subject = 'A list of files in your Google Drive';
const body = Logger.getLog();
MailApp.sendEmail(recipient, subject, body);

回攻員

String:Logging 主控台的記錄


log(data)

將資料寫入記錄。資料可以是字串、JavaScript 物件或具有 message 屬性的物件。

Logger.log("my log message");
// Info   my logmessage
Logger.log({ key: "value" });
// Info   {key=value}
Logger.log({ message: "my log message", data: { key: "value" } })
// Info   my logmessage

傳遞物件時,如果物件包含 message 屬性,系統會將該屬性用作記錄訊息。否則,系統會呼叫 toString() 方法,將物件轉換為字串。所有可序列化為 JSON 的其他屬性都會納入 LogEntry 中的 jsonPayload,類似於以下範例:

{
  "insertId": "w5eib...",
  "jsonPayload": {
    "message": "my log message",
    "serviceContext": {
      "service": "AKfyc..."
    },
    "data": {
      "key": "value"
    }
  },
  "resource": {
    "type": "app_script_function",
    "labels": {
      "invocation_type": "editor",
      "function_name": "unknown",
      "project_id": "1234567890"
    }
  },
  "timestamp": "2024-11-15T23:28:19.448591Z",
  "severity": "INFO",
  "labels": {
    "script.googleapis.com/user_key": "AOX2d...",
    "script.googleapis.com/process_id": "EAEA1...",
    "script.googleapis.com/project_key": "MQXvl...",
    "script.googleapis.com/deployment_id": "AKfyc..."
  },
  "logName": "projects/[PROJECT_ID]/logs/script.googleapis.com%2Fconsole_logs",
  "receiveTimestamp": "2024-11-15T23:28:20.363790313Z"
}

參數

名稱類型說明
dataObject要記錄的物件

回攻員

Logger:Logger,用於鏈結。


log(format, values)

使用提供的格式和值,將格式化的字串寫入記錄主控台。字串可包含多個 %s 預留位置,這些預留位置會替換為引數清單中對應的值,並轉換為字串。

// Log the number of Google Groups you belong to.
const groups = GroupsApp.getGroups();
Logger.log('You are a member of %s Google Groups.', groups.length);

參數

名稱類型說明
formatString格式字串,其中 %s 的例項數量等於 values 引數的數量
valuesObject...要插入格式字串的值,數量不定

回攻員

Logger:Logger,用於鏈結