Constructor

LoggingBunyan

new LoggingBunyan(options)

This module provides support for streaming your Bunyan logs to Stackdriver Logging.

Parameter

options

Optional

object

Values in options have the following properties:

Parameter

logName

Optional

string

The name of the log that will receive messages written to this bunyan stream. Default: bunyan_Log.

resource

Optional

object

The monitored resource that the log stream corresponds to. On Google Cloud Platform, this is detected automatically, but you may optionally specify a specific monitored resource. For more information, see the official documentation

serviceContext

Optional

object

For logged errors, we provide this as the service context. For more information see this guide and the official documentation.

serviceContext.service

Optional

string

An identifier of the service, such as the name of the executable, job, or Google App Engine service name.

serviceContext.version

Optional

string

Represents the version of the service.

projectId

Optional

string

The project ID from the Google Cloud 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.

keyFilename

Optional

string

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

email

Optional

string

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

credentials

Optional

object

Credentials object.

credentials.client_email

Optional

string

credentials.private_key

Optional

string

autoRetry

Optional

boolean

Automatically retry requests if the response is related to rate limits or certain intermittent server errors. We will exponentially backoff subsequent requests by default.

maxRetries

Optional

number

Maximum number of automatic retries attempted before returning the error.

promise

Optional

constructor

Custom promise module to use instead of native Promises.

Examples

Import the client library

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

Create a client that uses Application Default Credentials (ADC):

const loggingBunyan = new LoggingBunyan();

Create a client with explicit credentials:

const loggingBunyan = new LoggingBunyan({
  projectId: 'your-project-id',
  keyFilename: '/path/to/keyfile.json'
});

Full quickstart example:

const bunyan = require('bunyan');

// Imports the Google Cloud client library for Bunyan
const LoggingBunyan = require('@google-cloud/logging-bunyan');

// Creates a Bunyan Stackdriver Logging client
const loggingBunyan = new LoggingBunyan();

// Create a Bunyan logger that streams to Stackdriver Logging
// Logs will be written to: "projects/YOUR_PROJECT_ID/logs/bunyan_log"
const logger = bunyan.createLogger({
  // The JSON payload of the log as it appears in Stackdriver Logging
  // will contain "name": "my-service"
  name: 'my-service',
  // log at 'info' and above
  level: 'info',
  streams: [
    // Log to the console
    {stream: process.stdout},
    // And log to Stackdriver Logging
    loggingBunyan.stream(),
  ],
});

// Writes some log entries
logger.error('warp nacelles offline');
logger.info('shields at 99%');

Property

LOGGING_TRACE_KEY

static

string

Value: logging.googleapis.com/trace

Methods

stream

stream(level)

Convenience method that Builds a bunyan stream object that you can put in the bunyan streams list.

Parameter

level

(string or number)

A bunyan logging level. Log entries at or above this level will be routed to Stackdriver Logging.

Example

const logger = bunyan.createLogger({
  name: 'my-service',
  streams: [
    loggingBunyan.stream('info')
  ]
});

write

write(record, encoding, callback)

Intercept log entries as they are written so we can attempt to add the trace ID in the same continuation as the function that wrote the log, because the trace agent currently uses continuation local storage for the trace context.

By the time the Writable stream buffer gets flushed and _write gets called we may well be in a different continuation.

Parameter

record

object

encoding

string

callback

function()