Skip to content

Instantly share code, notes, and snippets.

@prantlf prantlf/logger.js forked from rtgibbons/logger.js
Last active Apr 27, 2018

Embed
What would you like to do?
Logger Library with winston - Fixed for additional log arguments
var app = require(process.cwd() + '/app');
var winston = require('winston');
var _ = require('lodash');
// Set up logger
var customColors = {
trace: 'white',
debug: 'green',
info: 'green',
warn: 'yellow',
crit: 'red',
fatal: 'red'
};
var logger = new(winston.Logger)({
colors: customColors,
levels: {
trace: 0,
debug: 1,
info: 2,
warn: 3,
crit: 4,
fatal: 5
},
transports: [
new(winston.transports.Console)({
level: app.settings.logLevel,
colorize: true,
timestamp: true
})
// new (winston.transports.File)({ filename: 'somefile.log' })
]
});
winston.addColors(customColors);
// Extend logger object to properly log 'Error' types
var origLog = logger.log;
logger.log = function (level, msg) {
if (msg instanceof Error) {
var args = Array.prototype.slice.call(arguments);
args[1] = msg.stack;
origLog.apply(logger, args);
} else {
origLog.apply(logger, arguments);
}
};
/* LOGGER EXAMPLES
app.logger.trace('testing');
app.logger.debug('testing');
app.logger.info('testing');
app.logger.warn('testing');
app.logger.crit('testing');
app.logger.fatal('testing');
*/
module.exports = logger;
@thedug

This comment has been minimized.

Copy link

thedug commented Mar 7, 2015

How do the "LOGGER EXAMPLES" work?

I don't see app.logger get set anywhere.

@gabssnake

This comment has been minimized.

Copy link

gabssnake commented Mar 15, 2015

Why require lodash if it is not being used ?

@vikas5914

This comment has been minimized.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.