Skip to content

Instantly share code, notes, and snippets.

@prantlf
Forked from rtgibbons/logger.js
Last active February 22, 2022 09:56
Show Gist options
  • Save prantlf/8e0bda1570fa91652767 to your computer and use it in GitHub Desktop.
Save prantlf/8e0bda1570fa91652767 to your computer and use it in GitHub Desktop.

Revisions

  1. prantlf revised this gist Dec 23, 2014. 1 changed file with 5 additions and 4 deletions.
    9 changes: 5 additions & 4 deletions logger.js
    Original file line number Diff line number Diff line change
    @@ -38,11 +38,12 @@ winston.addColors(customColors);
    var origLog = logger.log;

    logger.log = function (level, msg) {
    var objType = Object.prototype.toString.call(msg);
    if (objType === '[object Error]') {
    origLog.call(logger, level, msg.toString());
    if (msg instanceof Error) {
    var args = Array.prototype.slice.call(arguments);
    args[1] = msg.stack;
    origLog.apply(logger, args);
    } else {
    origLog.call(logger, level, msg);
    origLog.apply(logger, arguments);
    }
    };
    /* LOGGER EXAMPLES
  2. @rtgibbons rtgibbons created this gist Nov 7, 2013.
    57 changes: 57 additions & 0 deletions logger.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,57 @@
    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) {
    var objType = Object.prototype.toString.call(msg);
    if (objType === '[object Error]') {
    origLog.call(logger, level, msg.toString());
    } else {
    origLog.call(logger, level, msg);
    }
    };
    /* 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;