node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »


Build Status


stupid simple logging for Node.js. Prints messages to stdout.

Create a logger:

var logger = require('fastlog')(category, level);

logger then has a functions named after each of the available log levels. Levels are (in order of severity) debug, info, warn, error and fatal.

Both arguments are optional. category defaults to to "default" and level defaults to "debug". Anything less severe than the given level will not be logged.

The logger functions take a string (interpolation optional):

var logger = require('fastlog')('security', 'debug');
logger.debug('there is a %s in my %s!', 'snake', 'boot');
// [Fri, 05 Dec 2014 02:10:48 GMT] [debug] [security] there is a snake in my boot! 

Or an Error object. Any string property that's tacked onto the object will be logged as well:

var err = new Error('someone poisoned the water hole!');
err.culprit = 'sid';
// [Fri, 05 Dec 2014 02:10:48 GMT] [error] [security] Error: someone poisened the water hole! 
//     at Module.runMain (module.js:492:10) 
//     at process.startup.processNextTick.process._tickCallback (node.js:244:9) 
//     culprit: sid 

You can format your own prefix as well:

var logger = require('fastlog')('configured', 'error', '${level} [${ category }] <${timestamp}>');
logger.error('This town ain\'t big enough for the two of us!');
// error [configured] <Fri, 05 Dec 2014 02:10:48 GMT> This town ain't big enough for the two of us! 

Usage via shell scripts

You may also use fastlog in shell scripts. First, make sure fastlog is installed globally

npm install -g fastlog

fastlog <level> [--category=<category>] [message]

> fastlog error --category important "You're my favorite deputy"
# [Fri, 05 Dec 2014 03:17:59 GMT] [error] [important] You're my favorite deputy 
  • Configure verbosity by specifying a FASTLOG_LEVEL environment variable.
  • Configure your prefix with a FASTLOG_PREFIX environment variable.
  • Specifying a category is optional
> export FASTLOG_LEVEL=info
> export FASTLOG_PREFIX='<${timestamp}>'
> fastlog debug "I think you've had enough tea for today, let's get you outta here, Buzz."
# (nothing prints) 
> fastlog error "I think you've had enough tea for today, let's get you outta here, Buzz."
# <Fri, 05 Dec 2014 03:22:29 GMT> I think you've had enough tea for today, let's get you outta here, Buzz.