Skip to content

Instantly share code, notes, and snippets.

@ralucas
Last active August 29, 2015 14:04
Show Gist options
  • Save ralucas/2e606605f541a54b3555 to your computer and use it in GitHub Desktop.
Save ralucas/2e606605f541a54b3555 to your computer and use it in GitHub Desktop.
'use strict';
var winston = require('winston'),
util = require('util');
//winston logging for papertrail
require('winston-papertrail').Papertrail;
var logger;
// change to correct path for logs directory
var logsPath = path.join(__dirname, '../../logs');
var env = process.env.NODE_ENV || 'development';
if (process.env.NODE_ENV === 'production') {
logger = new winston.Logger({
transports: [
new winston.transports.Papertrail({
host: 'logs.papertrailapp.com',
port: '',
colorize: true
}),
new (winston.transports.File)({
filename: '../../logs/production_log.log'
})
]
});
} else {
logger = new winston.Logger({
transports: [
new (winston.transports.Console)({
level: 'info',
colorize: true,
timestamp: true
})
]
});
}
logger.add(winston.transports.File, {
filename: logsPath + '/' + env + '_log.log',
colorize: true,
level: 'info',
timestamp: true
});
// These functions apply the console function to the winston logger
function formatArgs(args){
return [util.format.apply(util.format, Array.prototype.slice.call(args))];
}
console.log = function(){
logger.info.apply(logger, formatArgs(arguments));
};
console.info = function(){
logger.info.apply(logger, formatArgs(arguments));
};
console.warn = function(){
logger.warn.apply(logger, formatArgs(arguments));
};
console.error = function(){
logger.error.apply(logger, formatArgs(arguments));
};
console.debug = function(){
logger.debug.apply(logger, formatArgs(arguments));
};
module.exports = logger;
// module.exports = {
// middleware: function(req, res, next){
// console.info(req.method, req.url, res.statusCode);
// next();
// },
// production: production
// };
// Override the built-in console methods with winston hooks
// switch((process.env.NODE_ENV || '').toLowerCase()){
// case 'production':
// production = true;
// logger.add(winston.transports.File, {
// filename: __dirname + '/application.log',
// handleExceptions: true,
// exitOnError: false,
// level: 'warn'
// });
// break;
// case 'test':
// // Don't set up the logger overrides
// return;
// default:
// logger.add(winston.transports.Console, {
// colorize: true,
// timestamp: true,
// level: 'info'
// });
// break;
// }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment