new LoggingServiceV2Client([options])

Construct an instance of LoggingServiceV2Client.

Parameters

Name Type Optional Description

options

 

Yes

The configuration object. See the subsequent parameters for more details.

Values in options have the following properties:

Name Type Optional Description

credentials

 

Yes

Credentials object.

credentials.client_email

 

Yes

credentials.private_key

 

Yes

email

 

Yes

Account email address. Required when using a .pem or .p12 keyFilename.

keyFilename

 

Yes

Full path to the a .json, .pem, or .p12 key downloaded from the Google Developers Console. If you provide a path to a JSON file, the projectId option below is not necessary. NOTE: .pem and .p12 require you to specify options.email as well.

port

 

Yes

The port on which to connect to the remote host.

projectId

 

Yes

The project ID from the Google Developer's Console, e.g. 'grape-spaceship-123'. We will also check the environment variable GCLOUD_PROJECT for your project ID. If your app is running in an environment which supports Application Default Credentials, your project ID will be detected automatically.

promise

 

Yes

Custom promise module to use instead of native Promises.

servicePath

 

Yes

The domain name of the API remote host.

Properties

static

apiEndpoint

The DNS address for this API service - same as servicePath(), exists for compatibility reasons.

static

port

The port for this API service.

static

scopes

The scopes needed to make gRPC calls for every method defined in this service.

static

servicePath

The DNS address for this API service.

Methods

deleteLog(request[, options][, callback]) → Promise

Deletes all the log entries in a log. The log reappears if it receives new entries. Log entries written shortly before the delete operation might not be deleted.

Example

const logging = require('@google-cloud/logging');

const client = new logging.v2.LoggingServiceV2Client({
  // optional auth parameters.
});

const formattedLogName = client.logPath('[PROJECT]', '[LOG]');
client.deleteLog({logName: formattedLogName}).catch(err => {
  console.error(err);
});

Parameters

Name Type Optional Description

request

Object

 

The request object that will be sent.

Values in request have the following properties:

Name Type Optional Description

logName

string

 

Required. The resource name of the log to delete:

  "projects/[PROJECT_ID]/logs/[LOG_ID]"
  "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
  "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
  "folders/[FOLDER_ID]/logs/[LOG_ID]"

[LOG_ID] must be URL-encoded. For example, "projects/my-project-id/logs/syslog", "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity". For more information about log names, see LogEntry.

options

Object

Yes

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback

function(nullable Error)

Yes

The function which will be called with the result of the API call.

Returns

Promise 

  • The promise which resolves when API call finishes. The promise has a method named "cancel" which cancels the ongoing API call.

getProjectId(callback)

Return the project ID used by this class.

Parameter

Name Type Optional Description

callback

function(Error, string)

 

the callback to be called with the current project Id.

listLogEntries(request[, options][, callback]) → Promise

Lists log entries. Use this method to retrieve log entries from Logging. For ways to export log entries, see Exporting Logs.

Example

const logging = require('@google-cloud/logging');

const client = new logging.v2.LoggingServiceV2Client({
  // optional auth parameters.
});

// Iterate over all elements.
const formattedResourceNames = [];

client.listLogEntries({resourceNames: formattedResourceNames})
  .then(responses => {
    const resources = responses[0];
    for (const resource of resources) {
      // doThingsWith(resource)
    }
  })
  .catch(err => {
    console.error(err);
  });

// Or obtain the paged response.
const formattedResourceNames = [];


const options = {autoPaginate: false};
const callback = responses => {
  // The actual resources in a response.
  const resources = responses[0];
  // The next request if the response shows that there are more responses.
  const nextRequest = responses[1];
  // The actual response object, if necessary.
  // const rawResponse = responses[2];
  for (const resource of resources) {
    // doThingsWith(resource);
  }
  if (nextRequest) {
    // Fetch the next page.
    return client.listLogEntries(nextRequest, options).then(callback);
  }
}
client.listLogEntries({resourceNames: formattedResourceNames}, options)
  .then(callback)
  .catch(err => {
    console.error(err);
  });

Parameters

Name Type Optional Description

request

Object

 

The request object that will be sent.

Values in request have the following properties:

Name Type Optional Description

resourceNames

Array of string

 

Required. Names of one or more parent resources from which to retrieve log entries:

  "projects/[PROJECT_ID]"
  "organizations/[ORGANIZATION_ID]"
  "billingAccounts/[BILLING_ACCOUNT_ID]"
  "folders/[FOLDER_ID]"

Projects listed in the project_ids field are added to this list.

projectIds

Array of string

Yes

Deprecated. Use resource_names instead. One or more project identifiers or project numbers from which to retrieve log entries. Example: "my-project-1A". If present, these project identifiers are converted to resource name format and added to the list of resources in resource_names.

filter

string

Yes

Optional. A filter that chooses which log entries to return. See Advanced Logs Filters. Only log entries that match the filter are returned. An empty filter matches all log entries in the resources listed in resource_names. Referencing a parent resource that is not listed in resource_names will cause the filter to return no results. The maximum length of the filter is 20000 characters.

orderBy

string

Yes

Optional. How the results should be sorted. Presently, the only permitted values are "timestamp asc" (default) and "timestamp desc". The first option returns entries in order of increasing values of LogEntry.timestamp (oldest first), and the second option returns entries in order of decreasing timestamps (newest first). Entries with equal timestamps are returned in order of their insert_id values.

pageSize

number

Yes

The maximum number of resources contained in the underlying API response. If page streaming is performed per-resource, this parameter does not affect the return value. If page streaming is performed per-page, this determines the maximum number of resources in a page.

options

Object

Yes

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback

function(nullable Error, nullable Array, nullable Object, nullable Object)

Yes

The function which will be called with the result of the API call.

The second parameter to the callback is Array of LogEntry.

When autoPaginate: false is specified through options, it contains the result in a single response. If the response indicates the next page exists, the third parameter is set to be used for the next request object. The fourth parameter keeps the raw response object of an object representing ListLogEntriesResponse.

Returns

Promise 

  • The promise which resolves to an array. The first element of the array is Array of LogEntry.

    When autoPaginate: false is specified through options, the array has three elements. The first element is Array of LogEntry in a single response. The second element is the next request object if the response indicates the next page exists, or null. The third element is an object representing ListLogEntriesResponse.

    The promise has a method named "cancel" which cancels the ongoing API call.

listLogEntriesStream(request[, options]) → Stream

Equivalent to listLogEntries, but returns a NodeJS Stream object.

This fetches the paged responses for listLogEntries continuously and invokes the callback registered for 'data' event for each element in the responses.

The returned object has 'end' method when no more elements are required.

autoPaginate option will be ignored.

Example

const logging = require('@google-cloud/logging');

const client = new logging.v2.LoggingServiceV2Client({
  // optional auth parameters.
});

const formattedResourceNames = [];
client.listLogEntriesStream({resourceNames: formattedResourceNames})
  .on('data', element => {
    // doThingsWith(element)
  }).on('error', err => {
    console.log(err);
  });

Parameters

Name Type Optional Description

request

Object

 

The request object that will be sent.

Values in request have the following properties:

Name Type Optional Description

resourceNames

Array of string

 

Required. Names of one or more parent resources from which to retrieve log entries:

  "projects/[PROJECT_ID]"
  "organizations/[ORGANIZATION_ID]"
  "billingAccounts/[BILLING_ACCOUNT_ID]"
  "folders/[FOLDER_ID]"

Projects listed in the project_ids field are added to this list.

projectIds

Array of string

Yes

Deprecated. Use resource_names instead. One or more project identifiers or project numbers from which to retrieve log entries. Example: "my-project-1A". If present, these project identifiers are converted to resource name format and added to the list of resources in resource_names.

filter

string

Yes

Optional. A filter that chooses which log entries to return. See Advanced Logs Filters. Only log entries that match the filter are returned. An empty filter matches all log entries in the resources listed in resource_names. Referencing a parent resource that is not listed in resource_names will cause the filter to return no results. The maximum length of the filter is 20000 characters.

orderBy

string

Yes

Optional. How the results should be sorted. Presently, the only permitted values are "timestamp asc" (default) and "timestamp desc". The first option returns entries in order of increasing values of LogEntry.timestamp (oldest first), and the second option returns entries in order of decreasing timestamps (newest first). Entries with equal timestamps are returned in order of their insert_id values.

pageSize

number

Yes

The maximum number of resources contained in the underlying API response. If page streaming is performed per-resource, this parameter does not affect the return value. If page streaming is performed per-page, this determines the maximum number of resources in a page.

options

Object

Yes

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

See also
https://nodejs.org/api/stream.html
Returns

Stream 

An object stream which emits an object representing LogEntry on 'data' event.

listLogs(request[, options][, callback]) → Promise

Lists the logs in projects, organizations, folders, or billing accounts. Only logs that have entries are listed.

Example

const logging = require('@google-cloud/logging');

const client = new logging.v2.LoggingServiceV2Client({
  // optional auth parameters.
});

// Iterate over all elements.
const formattedParent = client.projectPath('[PROJECT]');

client.listLogs({parent: formattedParent})
  .then(responses => {
    const resources = responses[0];
    for (const resource of resources) {
      // doThingsWith(resource)
    }
  })
  .catch(err => {
    console.error(err);
  });

// Or obtain the paged response.
const formattedParent = client.projectPath('[PROJECT]');


const options = {autoPaginate: false};
const callback = responses => {
  // The actual resources in a response.
  const resources = responses[0];
  // The next request if the response shows that there are more responses.
  const nextRequest = responses[1];
  // The actual response object, if necessary.
  // const rawResponse = responses[2];
  for (const resource of resources) {
    // doThingsWith(resource);
  }
  if (nextRequest) {
    // Fetch the next page.
    return client.listLogs(nextRequest, options).then(callback);
  }
}
client.listLogs({parent: formattedParent}, options)
  .then(callback)
  .catch(err => {
    console.error(err);
  });

Parameters

Name Type Optional Description

request

Object

 

The request object that will be sent.

Values in request have the following properties:

Name Type Optional Description

parent

string

 

Required. The resource name that owns the logs:

  "projects/[PROJECT_ID]"
  "organizations/[ORGANIZATION_ID]"
  "billingAccounts/[BILLING_ACCOUNT_ID]"
  "folders/[FOLDER_ID]"

pageSize

number

Yes

The maximum number of resources contained in the underlying API response. If page streaming is performed per-resource, this parameter does not affect the return value. If page streaming is performed per-page, this determines the maximum number of resources in a page.

options

Object

Yes

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback

function(nullable Error, nullable Array, nullable Object, nullable Object)

Yes

The function which will be called with the result of the API call.

The second parameter to the callback is Array of string.

When autoPaginate: false is specified through options, it contains the result in a single response. If the response indicates the next page exists, the third parameter is set to be used for the next request object. The fourth parameter keeps the raw response object of an object representing ListLogsResponse.

Returns

Promise 

  • The promise which resolves to an array. The first element of the array is Array of string.

    When autoPaginate: false is specified through options, the array has three elements. The first element is Array of string in a single response. The second element is the next request object if the response indicates the next page exists, or null. The third element is an object representing ListLogsResponse.

    The promise has a method named "cancel" which cancels the ongoing API call.

listLogsStream(request[, options]) → Stream

Equivalent to listLogs, but returns a NodeJS Stream object.

This fetches the paged responses for listLogs continuously and invokes the callback registered for 'data' event for each element in the responses.

The returned object has 'end' method when no more elements are required.

autoPaginate option will be ignored.

Example

const logging = require('@google-cloud/logging');

const client = new logging.v2.LoggingServiceV2Client({
  // optional auth parameters.
});

const formattedParent = client.projectPath('[PROJECT]');
client.listLogsStream({parent: formattedParent})
  .on('data', element => {
    // doThingsWith(element)
  }).on('error', err => {
    console.log(err);
  });

Parameters

Name Type Optional Description

request

Object

 

The request object that will be sent.

Values in request have the following properties:

Name Type Optional Description

parent

string

 

Required. The resource name that owns the logs:

  "projects/[PROJECT_ID]"
  "organizations/[ORGANIZATION_ID]"
  "billingAccounts/[BILLING_ACCOUNT_ID]"
  "folders/[FOLDER_ID]"

pageSize

number

Yes

The maximum number of resources contained in the underlying API response. If page streaming is performed per-resource, this parameter does not affect the return value. If page streaming is performed per-page, this determines the maximum number of resources in a page.

options

Object

Yes

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

See also
https://nodejs.org/api/stream.html
Returns

Stream 

An object stream which emits a string on 'data' event.

listMonitoredResourceDescriptors(request[, options][, callback]) → Promise

Lists the descriptors for monitored resource types used by Logging.

Example

const logging = require('@google-cloud/logging');

const client = new logging.v2.LoggingServiceV2Client({
  // optional auth parameters.
});

// Iterate over all elements.
client.listMonitoredResourceDescriptors({})
  .then(responses => {
    const resources = responses[0];
    for (const resource of resources) {
      // doThingsWith(resource)
    }
  })
  .catch(err => {
    console.error(err);
  });

// Or obtain the paged response.

const options = {autoPaginate: false};
const callback = responses => {
  // The actual resources in a response.
  const resources = responses[0];
  // The next request if the response shows that there are more responses.
  const nextRequest = responses[1];
  // The actual response object, if necessary.
  // const rawResponse = responses[2];
  for (const resource of resources) {
    // doThingsWith(resource);
  }
  if (nextRequest) {
    // Fetch the next page.
    return client.listMonitoredResourceDescriptors(nextRequest, options).then(callback);
  }
}
client.listMonitoredResourceDescriptors({}, options)
  .then(callback)
  .catch(err => {
    console.error(err);
  });

Parameters

Name Type Optional Description

request

Object

 

The request object that will be sent.

Values in request have the following properties:

Name Type Optional Description

pageSize

number

Yes

The maximum number of resources contained in the underlying API response. If page streaming is performed per-resource, this parameter does not affect the return value. If page streaming is performed per-page, this determines the maximum number of resources in a page.

options

Object

Yes

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback

function(nullable Error, nullable Array, nullable Object, nullable Object)

Yes

The function which will be called with the result of the API call.

The second parameter to the callback is Array of MonitoredResourceDescriptor.

When autoPaginate: false is specified through options, it contains the result in a single response. If the response indicates the next page exists, the third parameter is set to be used for the next request object. The fourth parameter keeps the raw response object of an object representing ListMonitoredResourceDescriptorsResponse.

Returns

Promise 

  • The promise which resolves to an array. The first element of the array is Array of MonitoredResourceDescriptor.

    When autoPaginate: false is specified through options, the array has three elements. The first element is Array of MonitoredResourceDescriptor in a single response. The second element is the next request object if the response indicates the next page exists, or null. The third element is an object representing ListMonitoredResourceDescriptorsResponse.

    The promise has a method named "cancel" which cancels the ongoing API call.

listMonitoredResourceDescriptorsStream(request[, options]) → Stream

Equivalent to listMonitoredResourceDescriptors, but returns a NodeJS Stream object.

This fetches the paged responses for listMonitoredResourceDescriptors continuously and invokes the callback registered for 'data' event for each element in the responses.

The returned object has 'end' method when no more elements are required.

autoPaginate option will be ignored.

Example

const logging = require('@google-cloud/logging');

const client = new logging.v2.LoggingServiceV2Client({
  // optional auth parameters.
});


client.listMonitoredResourceDescriptorsStream({})
  .on('data', element => {
    // doThingsWith(element)
  }).on('error', err => {
    console.log(err);
  });

Parameters

Name Type Optional Description

request

Object

 

The request object that will be sent.

Values in request have the following properties:

Name Type Optional Description

pageSize

number

Yes

The maximum number of resources contained in the underlying API response. If page streaming is performed per-resource, this parameter does not affect the return value. If page streaming is performed per-page, this determines the maximum number of resources in a page.

options

Object

Yes

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

See also
https://nodejs.org/api/stream.html
Returns

Stream 

An object stream which emits an object representing MonitoredResourceDescriptor on 'data' event.

logPath(project, log) → String

Return a fully-qualified log resource name string.

Parameters

Name Type Optional Description

project

String

 

log

String

 

Returns

String 

matchLogFromLogName(logName) → String

Parse the logName from a log resource.

Parameter

Name Type Optional Description

logName

String

 

A fully-qualified path representing a log resources.

Returns

String 

  • A string representing the log.

matchProjectFromLogName(logName) → String

Parse the logName from a log resource.

Parameter

Name Type Optional Description

logName

String

 

A fully-qualified path representing a log resources.

Returns

String 

  • A string representing the project.

matchProjectFromProjectName(projectName) → String

Parse the projectName from a project resource.

Parameter

Name Type Optional Description

projectName

String

 

A fully-qualified path representing a project resources.

Returns

String 

  • A string representing the project.

projectPath(project) → String

Return a fully-qualified project resource name string.

Parameter

Name Type Optional Description

project

String

 

Returns

String 

writeLogEntries(request[, options][, callback]) → Promise

Writes log entries to Logging. This API method is the only way to send log entries to Logging. This method is used, directly or indirectly, by the Logging agent (fluentd) and all logging libraries configured to use Logging. A single request may contain log entries for a maximum of 1000 different resources (projects, organizations, billing accounts or folders)

Example

const logging = require('@google-cloud/logging');

const client = new logging.v2.LoggingServiceV2Client({
  // optional auth parameters.
});

const entries = [];
client.writeLogEntries({entries: entries})
  .then(responses => {
    const response = responses[0];
    // doThingsWith(response)
  })
  .catch(err => {
    console.error(err);
  });

Parameters

Name Type Optional Description

request

Object

 

The request object that will be sent.

Values in request have the following properties:

Name Type Optional Description

entries

Array of Object

 

Required. The log entries to send to Logging. The order of log entries in this list does not matter. Values supplied in this method's log_name, resource, and labels fields are copied into those log entries in this list that do not include values for their corresponding fields. For more information, see the LogEntry type.

If the timestamp or insert_id fields are missing in log entries, then this method supplies the current time or a unique identifier, respectively. The supplied values are chosen so that, among the log entries that did not supply their own values, the entries earlier in the list will sort before the entries later in the list. See the entries.list method.

Log entries with timestamps that are more than the logs retention period in the past or more than 24 hours in the future will not be available when calling entries.list. However, those log entries can still be exported with LogSinks.

To improve throughput and to avoid exceeding the quota limit for calls to entries.write, you should try to include several log entries in this list, rather than calling this method for each individual log entry.

This object should have the same structure as LogEntry

logName

string

Yes

Optional. A default log resource name that is assigned to all log entries in entries that do not specify a value for log_name:

  "projects/[PROJECT_ID]/logs/[LOG_ID]"
  "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
  "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
  "folders/[FOLDER_ID]/logs/[LOG_ID]"

[LOG_ID] must be URL-encoded. For example:

  "projects/my-project-id/logs/syslog"
  "organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity"

The permission logging.logEntries.create is needed on each project, organization, billing account, or folder that is receiving new log entries, whether the resource is specified in logName or in an individual log entry.

resource

Object

Yes

Optional. A default monitored resource object that is assigned to all log entries in entries that do not specify a value for resource. Example:

  { "type": "gce_instance",
    "labels": {
      "zone": "us-central1-a", "instance_id": "00000000000000000000" }}

See LogEntry.

This object should have the same structure as MonitoredResource

labels

Object with string properties

Yes

Optional. Default labels that are added to the labels field of all log entries in entries. If a log entry already has a label with the same key as a label in this parameter, then the log entry's label is not changed. See LogEntry.

partialSuccess

boolean

Yes

Optional. Whether valid entries should be written even if some other entries fail due to INVALID_ARGUMENT or PERMISSION_DENIED errors. If any entry is not written, then the response status is the error associated with one of the failed entries and the response includes error details keyed by the entries' zero-based index in the entries.write method.

dryRun

boolean

Yes

Optional. If true, the request should expect normal response, but the entries won't be persisted nor exported. Useful for checking whether the logging API endpoints are working properly before sending valuable data.

options

Object

Yes

Optional parameters. You can override the default settings for this call, e.g, timeout, retries, paginations, etc. See gax.CallOptions for the details.

callback

function(nullable Error, nullable Object)

Yes

The function which will be called with the result of the API call.

The second parameter to the callback is an object representing WriteLogEntriesResponse.

Returns

Promise 

  • The promise which resolves to an array. The first element of the array is an object representing WriteLogEntriesResponse. The promise has a method named "cancel" which cancels the ongoing API call.