bunyan-cloudwatch

Writable stream to write bunyan logs to AWS CloudWatch

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
bunyan-cloudwatch
2.2.07 years ago9 years agoMinified + gzip package size for bunyan-cloudwatch in KB

Readme

bunyan-cloudwatch Build Status
Stream to write bunyan logs to AWS CloudWatch.
This is actually a plain Node.js Writable object stream so could be used without bunyan.

Usage

var bunyan = require('bunyan');
var createCWStream = require('bunyan-cloudwatch');

var stream = createCWStream({
  logGroupName: 'my-group',
  logStreamName: 'my-stream',
  cloudWatchLogsOptions: {
    region: 'us-west-1'
  }
});

var log = bunyan.createLogger({
  name: 'foo',
  streams: [
    {
      stream: stream,
      type: 'raw'
    }
  ]
});

To avoid raising exceptions when stringifying circular object logs, install the optional dependency 'safe-json-stringify'.
Avoid logging from multiple sources to the same CloudWatch log stream. The module has a fallback by requesting the latest log sequence but this can result in a major performance decrease due to additional requests. It is recommended to e.g. add the machines IP address to the log stream name when logging from multiple instances.

API

createCWStream(opts)

With opts of:
  • logGroupName (required)
  • logStreamName (required)
  • cloudWatchLogsOptions (optional): options passed to the AWS.CloudWatchLogs constructor

On write of the first log, the module creates the logGroup and logStream if necessary.
We use the aws-sdk to write the logs - the AWS credentials have therefore to be configured using environment variables (AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY).

Contributors

This project was created by Mirko Kiefer (@mirkokiefer).