node package manager
Love JavaScript? Your insights can make it even better. Take the 2017 JavaScript Ecosystem Survey »


An Amazon SNS transport for winston.


Installing winston-sns via npm

  $ npm install winston
  $ npm install winston-sns

(or add it to your package.json)


  var winston = require('winston'),
      winstonSNS = require('winston-sns');
  winston.add(winstonSNS, options);


Annotated source can be generated using docco:

    docco lib

note that you need pygments installed to use docco - you can install it on a mac by using:

  easy_install pygments

The SNS transport uses Amazon's AWS SDK for JavaScript to generate Amazon SNS messages, so if you have a ~/.aws/credentials file, a AWS.config file, or are running on a EC2 instance that has a IAM role associated with it, you don't need to specify your AWS credentials. To read more about this, please see the Amazon Documentation on Configuring the SDK in Node.js


  • subscriber: Subscriber number - found in your SNS AWS Console, after clicking on a topic. Same as AWS Account ID. [required]
  • topic_arn: Also found in SNS AWS Console - listed under a topic as Topic ARN. [required]
  • aws_key: Your Amazon Web Services Key.
  • aws_secret: Your Amazon Web Services Secret.
  • region: AWS Region to use. Can be one of: us-east-1,us-west-1,eu-west-1,ap-southeast-1,ap-northeast-1,us-gov-west-1,sa-east-1. (default: us-east-1)
  • subject: Subject for notifications. Uses placeholders for level (%l), error message (%e), and metadata (%m). (default: "Winston Error Report")
  • message: Message of notifications. Uses placeholders for level (%l), error message (%e), and metadata (%m). (default: "Level '%l' Error:\n%e\n\nMetadata:\n%m")
  • level: lowest level this transport will log. (default: info)
  • json: use json instead of a prettier (human friendly) string for meta information in the notification. (default: false)
  • handleExceptions: set to true to have this transport handle exceptions. (default: false)
  • silent: Boolean flag indicating whether to suppress output (default: false)

Feel free to file issues in this github tracker, I check it often.