prettifies ndjson from wzrd and similar tools
MIT License
Prettifies ndjson or bole logs from budo, wzrd and other tools.
Example with budo, which uses this under the hood.
npm install garnish [-g|--save-dev]
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
.
garnish([opt])
Returns a duplexer that parses input as ndjson, and writes a pretty-printed result. Options:
level
(String)
'debug'
)debug
, info
, warn
, error
name
(String)
name
field will not be printed when it matches this default name, to reduce redundant/obvious information in the logs.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:
level
debug
, info
, warn
, error
(default debug
) - only shown if message
is presentname
message
url
statusCode
>=400
are displayed in red.contentLength
number
, bytes are assumedelapsed
number
, milliseconds are assumedtype
colors
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'
}
})
}
MIT, see LICENSE.md for details.