Skip to content

A logging library that combines the simplicity and convenience of debug with the power of bunyan

License

Notifications You must be signed in to change notification settings

uphold/debugnyan

Repository files navigation

debugnyan

A logging library that combines the simplicity and convenience of debug with the power of bunyan.

Status

npm version build status

Installation

Install the package via yarn:

❯ yarn add debugnyan

or via npm:

❯ npm install debugnyan --save

Usage

Create a logger by giving it a namespace and then call bunyan's log methods on the returned instance.

By default, similarly to debug's behaviour, loggers do not output any content. Each logger output can be selectively activated by using the DEBUG environment variable. Pattern matching is based on the logger's name and it can optionally contain colons (:) to create (sub)-components properties on the logger instance.

Consider a logger named foo:bar:biz:

  • this creates a bunyan logger with name foo
  • and a bunyan (simple) child logger with property component equal to bar.
const logger1 = require('debugnyan')('foo');
const logger2 = require('debugnyan')('foo:bar');

logger1.debug('net');
logger2.debug('qux');

Example output with DEBUG=foo:

DEBUG=foo node example.js

{"name":"foo","hostname":"ruimarinho","pid":1,"level":20,"msg":"net","time":"2016-10-04T18:54:14.530Z","v":0}
{"name":"foo","hostname":"ruimarinho","pid":1,"component":"bar","level":20,"msg":"qux","time":"2016-10-04T18:54:14.531Z","v":0}

Example output with DEBUG=foo:bar:

DEBUG=foo:bar node example.js

{"name":"foo","hostname":"ruimarinho","pid":2,"component":"bar","level":20,"msg":"qux","time":"2016-10-04T18:55:08.217Z","v":0}

The prefix and suffix for each component is also customizable:

const logger = require('debugnyan')('foo', {}, { suffix: 'module' });

When creating a child logger you may also override the default simple behavior:

const logger = require('debugnyan')('foo', {}, { suffix: 'module', simple: false });

Log level

The level bunyan option is respected if the logger output is active.

const logger = require('debugnyan')('foo', { level: 'info' });

You may also set the log level via the LOG_LEVEL environment variable. However, the level option will always take precedence over it.

Tests

❯ yarn test

Release

Click Run Workflow on the release github action.

License

MIT

About

A logging library that combines the simplicity and convenience of debug with the power of bunyan

Resources

License

Stars

Watchers

Forks

Packages

No packages published