Class Logger

Logger

This class allows the developer to write to the Execution log and to Google Cloud Logging if the script is associated with a standard Cloud Project. This class is preferred for structured logging and jsonPayload support in Cloud Logging. For time-based logging, use console.

Methods

MethodReturn typeBrief description
clear()voidClears the log.
getLog()StringReturns a complete list of messages in the current log.
log(data)LoggerWrites the data to the log.
log(format, values)LoggerWrites a formatted string to the logging console, using the format and values provided.

Detailed documentation

clear()

Clears the log.


getLog()

Returns a complete list of messages in the current log. This method can be used to save or email the entire log output generated during script execution.

// 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);

Return

String — the log from the logging console


log(data)

Writes the data to the log. The data can be a string, a JavaScript object, or an object with a message property.

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

When passing an object, if the object contains a message property, that property is used as the log message. Otherwise, the toString() method is called to convert the object to a string. All other properties which are JSON serializable are included as part of the jsonPayload in the LogEntry, similar to the example below:

{
  "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"
}

Parameters

NameTypeDescription
dataObjectthe object to log

Return

Logger — the Logger, for chaining.


log(format, values)

Writes a formatted string to the logging console, using the format and values provided. The string can include multiple %s placeholders, which are replaced with corresponding values from the list of arguments, converted to strings.

// 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);

Parameters

NameTypeDescription
formatStringa format string that contains as many instances of %s as the number of values arguments
valuesObject...a variable number of values to insert into the format string

Return

Logger — the Logger, for chaining