Skip to content

biggaji/send-cloudwatch-log

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

send-cloudwatch-log

This sdk allows you to easily send logs from your Node.js application to AWSCloudWatchLogs service. It is easy and very simple to use.

Requirement

This sdk requires a node version 8, 10 or higher to work effectively.

Installation

Using Npm?

npm install --save send-cloudwatch-log

Using Yarn?

yarn add send-cloudwatch-log

Usage

const cwlogger = require('send-cloudwatch-log');

// Create an instance of the cwlogger , you can create as many instance as you want.
// For each instance, you just need to pass the required configs details as seen in the example below:
const logger = new cwlogger(
  {
    accessKeyId: 'AWS_ACCESS_KEY_ID',
    secretAccessKey: 'AWS_SECRET_ACCESS_KEY',
    region: 'AWS_REGION',
  },
  {
    logGroupName: 'LOG_GROUP_NAME',
    logStreamName: 'LOG_STREAM_NAME',
  },
);

/**
 * Create a log object
 * Each log object must contain only the 'message' and 'timestamp' properties.
 * { message: string, timestamp: number}
 * Since message must be a string, so you can also use the JSON.stringify() method to wrap objects as a string
 * timestamp must be in milliseconds, so you can use either Date.now() or new Date().getTime();
 */

let log = {
  message: 'Hello World from cwLogger',
  timestamp: Date.now(),
};


// Send log to AWSCloudWatchLogs
// The sendLog() method accepts either a single log object or an array of log objects.

// Sending the a single log object
logger
  .sendLog(log)
  .then((resp) => {
     // resp -> the response from AWSCloudWatchLogs
    console.log(`Logs sent successfully`, resp);
  })
  .catch((err) => {
    console.log(`An error occured`, err);
  });


let logs = [
  {
    message: 'Hello World from cwLogger',
    timestamp: Date.now(),
  };
  {
    message: JSON.stringify({ error: 'TypeError', message: 'timestanps must be a number'}),
    timestamp: Date.now(),
  };
];

// Sending the an array | list of log object
logger
  .sendLog(logs)
  .then((resp) => {
    // resp -> the response from AWSCloudWatchLogs
    console.log(`Logs sent successfully`, resp);
  })
  .catch((err) => {
    console.log(`An error occured`, err);
  });

The sendLog() method takes the log object or an array of log objects as an argument and sends it to the AWSCloudWatchLogs.

It returns a promise which when successful, returns an object which contains a nextSequenceToken and $metadata from AWSCloudWatchLogs or an error with a message showing the reason it failed.

Image Screenshot of AwsCloudWatchLogs stream event

How can I thank you?

Why not star the Github repository? I'd love the attention!

Why not share the link for this repository on X or HackerNews?

Spread the word!

Don't forget to follow me on X!

Thanks!

Tobiloba Ajibade.

License

The MIT License (MIT).