Lightweight logger with a simple pass-through configuration for use with fancier logging libraries
Lightweight logger with a simple pass-through configuration for use with fancier logging libraries. Used by the Sails framework. Optional support for colorized output, custom prefixes, and log levels (using npm's logging conventions.)
$ npm install captains-log
var log = ;;
By default, if you just call
log(), captains-log will write your log output at the "debug" log level. You can achieve the same effect by writing
IMPORTANT NOTE: npm calls this level
log.http(), but we call it
debug. If you use
log(), the logger sees this as a call to
Here are all of the log-level-specific methods which are available in captains-log out of the box:
To use a different library,
overrides.custom must already be instantiated and ready to go with (at minimum) an n-ary
var log = custom: customLogger ;;// yields => "Hello world"
customLogger works as follows:
var customLogger = consolelog;
When an object is passed, and inspect is set to true (it is true, by default), you can configure the inner inspect function options, by passing an
var log = inspectOptions: colors: true depth: null;;
The previous code renders the object with colors.
Formerly, this module encapsulated winston, a popular logger by @indexzero and the gals/guys over at Nodejitsu. Recently, we made Winston optional to make captains-log as lightweight as possible and reduce the number of
npm installs and
require()s necessary for its usage in other modules.
But Winston is awesome! And it's a great fit for many apps, giving you granular control over how log output is handled, including sending emails, logging to multiple transports, and other production-time concerns.
To use boot up a captains-log that writes to Winston, do the following:
var log =custom: new Loggerlevels : ...transports : ...;