node package manager
Love JavaScript? Your insights can make it even better. Take the 2017 JavaScript Ecosystem Survey »



Pilgrim is a logging stream for trentm's node-bunyan module designed to work in conjunction with mcavage's node-restify server.

It allows you to direct a specific range of status codes to individual log files. For example, you can easily separate all client errors (4xx) from server errors (5xx) and successful requests (2xx) into a separate file for each category.

You can also ignore specific error codes, giving you greater control over your logging operations.


npm install bunyan-pilgrim


var bunyan = require('bunyan');
var Pilgrim = require('bunyan-pilgrim');
var logger = bunyan.createLogger({
  name: 'Pilgrim Test',
  streams: [
      level: 'info',
      stream: new Pilgrim({
        from: 400,
        to: 499,
        stream: '/var/log/app-client-errors.log',
        ignore: [401]
      level: 'info',
      stream: new Pilgrim({
        from: 500,
        to: 599,
        stream: '/var/log/app-server-errors.log'
server = restify.createServer({
  log: logger,


Each Pilgrim is configured with a hash that includes the following:

  • from: the first status code that must be captured in this log
  • to: the last status code that msut be captured in this log
  • stream: either a string containing the path of the log file, or an instance of Stream.Writable.
  • ignore: an optional array of status codes that fall between from and to but should be ignored anyway.


Contributions are welcome… particularly if accompanied by a unit test.