UNPKG

debugnyan

Version:

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

52 lines (39 loc) 986 B
/** * Module dependencies. */ const bunyan = require('bunyan'); const debug = require('debug'); /** * Loggers. */ const loggers = Object.create(null); /** * Default level. */ const level = bunyan.FATAL + 1; /** * Export `debugnyan`. */ module.exports = function debugnyan(name, options = {}, { prefix = 'sub', simple = true, suffix = 'component' } = {}) { const [root, ...components] = name.split(':'); if (!loggers[root]) { loggers[root] = bunyan.createLogger({ ...options, level, name: root }); } if (!loggers[name]) { loggers[name] = loggers[root].child( components.reduce( (total, current, i) => { total[`${prefix.repeat(i)}${suffix}`] = current; return total; }, { level } ), simple ); } if (debug.enabled(name)) { // eslint-disable-next-line no-process-env loggers[name].level(options?.level ?? process.env.LOG_LEVEL ?? bunyan.DEBUG); } return loggers[name]; };