Filter out undesired log levels from your Caterpillar logger stream

Filter Transform for Caterpillar

Filter out undesired log levels from your Caterpillar logger stream

Node, Browserify

  • Use: require('caterpillar-filter')
  • Install: npm install --save caterpillar-filter


  • Use: require('caterpillar-filter')
  • Install: ender add caterpillar-filter
// Import 
var logger = require('caterpillar').createLogger();
var filter = require('caterpillar-filter').createFilter({level:6});  // omit log level entries above 6 
// Pipe logger output to filter, then filter output to stdout 
// Log 
logger.log('info',  'this is the first log entry');   // info is level 6 
logger.log('debug', 'this is the second log entry');  // debug is level 7, this will be omitted by our filter 
logger.log('info',  'this is the third log entry');   // info is level 6 
// Outputs 
// {"args":["this is the first log entry"],"date":"2013-04-25T08:48:38.941Z","levelCode":6,"levelName":"info","line":"9","method":"Object.<anonymous>","file":"/Users/balupton/Projects/caterpillar-filter/example.js"} 
// {"args":["this is the third log entry"],"date":"2013-04-25T08:48:38.948Z","levelCode":6,"levelName":"info","line":"11","method":"Object.<anonymous>","file":"/Users/balupton/Projects/caterpillar-filter/example.js"} 

Filter API, extends caterpillar.Transform, which extends stream.Transform

new (require('caterpillar-filter').Filter)(config)
  • Methods
    • constructor(config?) create our new filter instance with the config, config is optional
    • pipe(child) pipe our stream to the child, also sync our config to it
    • setConfig(config) set the configuration and emit the config event
    • getConfig() get the configuration
    • format(entry) format the caterpillar logger entry
  • Configuration
    • level number, defaults to 6, anything higher will be omitted
  • Events
    • config(config) emitted once our configuration has updated

Discover the change history by heading on over to the file.

These amazing people are maintaining this project:

  • Benjamin Lupton (

No sponsors yet! Will you be the first?

These amazing people have contributed code to this project:

Become a contributor!

Licensed under the incredibly permissive MIT license

Copyright © 2012+ Bevry Pty Ltd (
Copyright © 2011 Benjamin Lupton (