Writable stream to write bunyan logs to AWS CloudWatch

Downloads in past


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


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.


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.



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).


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