debug-logfmt

Highlights
- Based on the popular
debug
module. - Lazy level evaluation used logs levels.
- Level support:
info
,warn
&error
based from RFC 5424. - Message formatting Heroku logfmt syntax.
- Colorized output via
DEBUG_COLORS
by default. debug.duration
for measurement.
Install
$ npm install debug-logfmt --save
Usage
Multiple levels
Given a code like this one:
const debug = require('debug-logfmt')('metascraper')
debug('retry', { url: 'https://kikobeats.com' })
debug.info('done', { time: Date.now() })
debug.warn('token expired', { timestamp: Date.now() })
debug.error('whoops', { message: 'expected `number`, got `NaN`' })
You can:
- Allow all the levels:
DEBUG=debug-logfmt*
- Discard specific levels:
DEBUG="*,-metascraper:info*" node example.js
Measurement
Sometimes you need to log the duration of a function:
const { setTimeout } = require('timers/promises')
const debug = require('debug-logfmt')('metascraper')
const duration = debug.duration()
setTimeout(1001).then(() => duration.error('timeout!'))
setTimeout(1100).then(() => duration.info('success'))
API
debug(env, [options])
env
Required
Type: string
The env variable name to use for enabling logging using DEBUG
.
options
levels
Type: array
Default: ['debug', 'info', 'warn', 'error']
The log levels available.
debug.duration([...args])
It returns a function will print the duration in the next call.
const duration = debug.duration('query')
const result = await db.query(query)
duration(result)
License
debug-logfmt © Kiko Beats, released under the MIT License.
Authored and maintained by Kiko Beats with help from contributors.
kikobeats.com · GitHub Kiko Beats · X @Kikobeats