Skip to content

diegomjv/winston-sqs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Amazon SQS Transport for Winston Build Status

Forked from (https://github.com/justin-roncal/winston-sqs)

Installation via npm

  $ npm install winston
  $ npm install winston-sqs-transport

Usage

const { createLogger, format, transports } = require('winston');
const { SQSTransport } = require('winston-sqs-transport');
const { Config } = require('aws-sdk');

const { combine, timestamp, label, printf } = format;
 
const queueUrl = 'your queueUrl';
const sqsOptions = new Config();
sqsOptions.accessKeyId = 'your accessKeyId';
sqsOptions.secretAccessKey = 'your secretAccessKey';
sqsOptions.region = 'your region';

const sqsTrans = new SQSTransport({
  queueUrl: queueUrl,
  sqsOptions
});

const myFormat = printf(({ level, message, timestamp }) => {
    return `${timestamp} [${level.toUpperCase()}]: ${message}`;
  });
 
const logger = createLogger({
    defaultMeta: {
        application: 'Your App'
    },
    format: combine(
        timestamp(),
        myFormat
      ),
    transports: [
        new transports.Console(),
        sqsTransport
    ],
    exitOnError: false
});

logger.info("Message in SQS AWS");

In your application console:

2020-06-18T12:46:38.493Z [INFO]: Message in SQS AWS

In your AWS SQS:

{
  message: 'Message in SQS AWS',
  level: 'info',
  application: 'Your App',
  timestamp: '2020-06-18T12:46:38.493Z',
  host: 'NBQSP-FC342',
  env: 'development',
  pid: '4852'
}

Additional options

debug -> displays the error when sending message

encodedBase64 -> transform message body in base64

silent in your unit tests -> In config winston

const sqsTrans = new SQSTransport({
  queueUrl: queueUrl,
  sqsOptions,
  debug : true,
  encodedBase64 : true
});

silent send message in your unit tests -> In config winston

export const logger = createLogger({
  levels,
  level: 'error',
  exitOnError: false,
  silent: true
  ....
  });
  
Or 
In your file test, import your logger and set properties silente for true:
logger.silent = true;   explicitly
logger.silent = process.env.NODE_ENV == 'test';  by env
 

ENJOY!!!

About

Amazon SQS Transport for Winston

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%