Logger

This class allows the developer to write to the Execution log and to [Google Cloud Logging](https://cloud.google.com/logging) if the script is associated with
a [standard
Cloud Project](https://developers.google.com/apps-script/guides/cloud-platform-projects#standard). This class is preferred for structured logging and `jsonPayload` support
in Cloud Logging. For time-based logging, use `https://developers.google.com/apps-script/reference/base/console`.

### Methods

| Method | Return type | Brief description |
|---|---|---|
| `https://developers.google.com/apps-script/reference/base/logger#clear()` | `void` | Clears the log. |
| `https://developers.google.com/apps-script/reference/base/logger#getLog()` | `String` | Returns a complete list of messages in the current log. |
| `https://developers.google.com/apps-script/reference/base/logger#log(Object)` | `https://developers.google.com/apps-script/reference/base/logger#` | Writes the data to the log. |
| `https://developers.google.com/apps-script/reference/base/logger#log(String,Object...)` | `https://developers.google.com/apps-script/reference/base/logger#` | Writes 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.

```javascript
// 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.

```javascript
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`](https://cloud.google.com/logging/docs/reference/v2/rest/v2/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

| Name | Type | Description |
|---|---|---|
| `data` | `Object` | the object to log |

#### Return


`https://developers.google.com/apps-script/reference/base/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.

```javascript
// 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

| Name | Type | Description |
|---|---|---|
| `format` | `String` | a format string that contains as many instances of `%s` as the number of `values` arguments |
| `values` | `Object...` | a variable number of values to insert into the format string |

#### Return


`https://developers.google.com/apps-script/reference/base/logger#` --- the Logger, for chaining