debug-logfmt

debug module using logfmt format


Keywords
debug, debugger, herokubunyan, log, logfmt, logger, logging, winston
License
MIT
Install
npm install debug-logfmt@1.4.0

Documentation

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