Home

Awesome

garnish

stable

Prettifies ndjson or bole logs from budo, wzrd and other tools.

Example with budo, which uses this under the hood.

<img src="http://i.imgur.com/Pvus8vy.png" width="75%" />

Install

npm install garnish [-g|--save-dev]

Usage

CLI

Pipe a ndjson emitter into garnish like so:

node app.js | garnish [opts]

Options:

    --level, -l    the minimum debug level, default 'debug'
    --name, -n     the default app name

Where level can be debug, info, warn, error.

API

garnish([opt])

Returns a duplexer that parses input as ndjson, and writes a pretty-printed result. Options:

format

Typically, you would use bole or ndjson to write the content to garnish. You can also write ndjson to stdout like so:

// a log message
console.log({
  name: 'myApp',
  level: 'warn',
  message: 'not found'
})

// a typical server message
console.log({
  name: 'myApp',
  type: 'generated',
  level: 'info',
  url: '/foo.png',
  statusCode: 200,
  contentLength: 12800, // in bytes
  elapsed: 120 // in milliseconds
})

Currently garnish styles the following:

You can use the colors field to override any of the default colors with a new ANSI style.

For example, the following will print elapsed in yellow if it passes our threshold:

function logTime (msg) {
  var now = Date.now()
  var time = now - lastTime
  lastTime = now

  console.log({
    name: 'app',
    message: msg,
    elapsed: time + ' ms',
    colors: {
      elapsed: time > 1000 ? 'yellow' : 'green'
    }
  })
}

See Also

License

MIT, see LICENSE.md for details.