awslogs-stream

Writable stream to publish logs to AWS CloudWatch Logs

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
awslogs-stream
101.1.08 years ago8 years agoMinified + gzip package size for awslogs-stream in KB

Readme

awslogs-stream
Stream to write logs to AWS CloudWatch.
This is actually a plain Node.js Writable object stream.

Usage

var bunyan = require('bunyan');
var CloudWatchStream = require('awslogs-stream');

var stream = CloudWatchStream({
  logGroupName: 'my-group',
  logStreamName: 'my-stream',
  cloudWatchLogsOptions: {
    region: 'us-west-1'
  },
  processLogRecord: function(record) {
    return {
      message: JSON.stringify(record),
      timestamp: 1*new Date(record.time)
    }
  }
});

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

API

CloudWatchStream(opts)

With opts of:
  • logGroupName (required)
  • logStreamName (required)
  • cloudWatchLogsOptions (optional): options passed to the AWS.CloudWatchLogs constructor
  • cloudWatchLogs (optional): optional existing cloudwatchlogs client
  • processLogRecord (optional): function to process log records to for cloudwatch (it should return object with 2 properties: message to be string and timestamp to be unix timestamp)
  • bufferDuration (optional, by default it is 5000 ms) timeout between writes

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) and almost rewritten by Denis Bardadym.