Skip to content

Instantly share code, notes, and snippets.

@ArthurRocha
Last active December 19, 2018 18:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ArthurRocha/1ae74a4a1f5e3c08e653998fe1ea7c19 to your computer and use it in GitHub Desktop.
Save ArthurRocha/1ae74a4a1f5e3c08e653998fe1ea7c19 to your computer and use it in GitHub Desktop.
NodeJs Logs AWS Cloudwatch Winston - Encapsulation of standard output and sending logs to cloudwatch (console.log... error warn info debug). Just call once 'require('./config/log-config');' on your app initialization
'use strict';
var util = require('util'),
winston = require('winston'),
WinstonCloudWatch = require('winston-cloudwatch');
winston.add(new WinstonCloudWatch({
logGroupName: 'YOUR_GROUP_NAME',
logStreamName: 'YOUR_APP_NAME',
awsRegion: 'us-west-2'
}));
function formatArgs(args){
return util.format.apply(util.format, Array.prototype.slice.call(args));
}
const originalConsoleLog = console.log;
console.log = function(){
originalConsoleLog(formatArgs(arguments));
winston.warn(formatArgs(arguments));
};
const originalConsoleInfo = console.info;
console.info = function(){
originalConsoleInfo(formatArgs(arguments));
winston.info(formatArgs(arguments));
};
const originalConsoleWarn = console.warn;
console.warn = function(){
originalConsoleWarn(formatArgs(arguments));
winston.warn(formatArgs(arguments));
};
const originalConsoleError = console.error;
console.error = function(){
originalConsoleError(formatArgs(arguments));
winston.error(formatArgs(arguments));
};
const originalConsoleDebug = console.debug;
console.debug = function(){
originalConsoleDebug(formatArgs(arguments));
winston.debug(formatArgs(arguments));
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment