garnish v5.2.0
garnish
Prettifies ndjson or bole logs from budo, wzrd and other tools.
Example with budo, which uses this under the hood.
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 nameWhere 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:
level(String)- the minimum log level to print (default
'debug') - the order is as follows:
debug,info,warn,error
- the minimum log level to print (default
name(String)- the default name for your logger; a message's
namefield will not be printed when it matches this default name, to reduce redundant/obvious information in the logs.
- the default name for your logger; a message's
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:
level- the log level e.g.
debug,info,warn,error(defaultdebug) - only shown ifmessageis present
- the log level e.g.
name- an optional event or application name. It's recommended to always have a name.
message- an event message.
url- a url (stripped to pathname), useful for router logging.
statusCode- an HTTP statusCode. Codes
>=400are displayed in red.
- an HTTP statusCode. Codes
contentLength- the response size; if a
number, bytes are assumed
- the response size; if a
elapsed- time elapsed since the previous related event; if a
number, milliseconds are assumed
- time elapsed since the previous related event; if a
type- the type of event logged
colors- an optional color mapping for custom styles
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.
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago