awslogs-stream

1.1.0 • Public • Published

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.

Package Sidebar

Install

npm i awslogs-stream

Weekly Downloads

312

Version

1.1.0

License

MIT

Last publish

Collaborators

  • btd