Skip to content

Instantly share code, notes, and snippets.

@alexanderGugel
Created June 16, 2014 03:54
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 alexanderGugel/b0114e54bbcb91653f06 to your computer and use it in GitHub Desktop.
Save alexanderGugel/b0114e54bbcb91653f06 to your computer and use it in GitHub Desktop.
Minimal Node.JS logger for 12-factor apps
// Usage:
// var logger = require('./logger');
// logger.debug('Debug message');
// logger.info('Info message');
// logger.warn('Warn message');
// logger.error('Error message');
// logger.addLevels({
// silly: 'white'
// });
// logger.silly('Silly message');
//
// Further reading:
// * http://12factor.net/logs
var colors = require('colors'),
_ = require('lodash');
var makeLogFunction = function (color, level) {
return function (msg) {
console.log(('[' + level + ']')[color] + ' ' + new Date().toString().grey + ' ' + msg + ' ');
};
};
var logger = {
addLevels: function (levels) {
logger = _.defaults(logger, _.mapValues(levels, makeLogFunction));
}
};
logger.addLevels({
debug: 'grey',
info: 'blue',
warn: 'orange',
error: 'red'
});
module.exports = logger;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment