node package manager

nebulog

A enhancement/wrapper around the wonderful Winston logger.

nebulog

A enhancement/wrapper around the wonderful Winston logger.

  curl http://npmjs.org/install.sh | sh
  [sudo] npm install nebulog

Winston is a great logger, but there were a few minor issues about it that I didn't like, or features I wish it had. The enhancements over a vanilla implementation of Winston are:

  • Outputting the filename of the file from which the logging message came from.
  • Aligning the logging message by adding padding after the severity level.
  • Use a more JSON-like syntax when printing the metadata object.
  • Allow arbitrarily many metadata objects to be logged, rather than just one.
  var logger = require('nebulog').make({filename: __filename});

  logger.log('info', 'Logger is working');
  logger.info('This also works');
  var logger = require('nebulog').make({filename: __filename, level: 'warn'});

  logger.warn('This will be visible.');
  logger.info("But this won't");

The log available log levels, from least serious to most serious, are:

['silly', 'verbose', 'info', 'warn', 'debug', 'error'];

  var loggerA = require('nebulog').make({filename: __filename + ':A'});
  var loggerB = require('nebulog').make({filename: __filename + ':B'});

  function A() {
    loggerA.info('This log message will be marked as coming from A');
  }

  function B() {
    loggerB.info('But this log message will be marked as coming from B');
  }