Writable stream to write bunyan logs to AWS CloudWatch
npm install bunyan-cloudwatchStream to write bunyan logs to AWS CloudWatch.
This is actually a plain Node.js Writable object stream so could be used without bunyan.
`` js
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.
of:-
logGroupName (required)
- logStreamName (required)
- cloudWatchLogsOptions (optional): options passed to the AWS.CloudWatchLogs constructorOn 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).CloudWatchLogs.putLogEvents` is the method we use to write logs