preacher
Install
npm install --save preacher
Goal
- To easily integrate visionmedia's debug into any javascript logging framework for node or the browser.
- Lazy log level evaluation
- Easy log namespace management via spawning.
API
preacher(options = {})
Options:
-
loggerToWrap
(required)
- Logging instance that is wrapped. Typically this would be winston, console or $log (angular).
-
debugApi
(optional)
- A visionmedia debug instance if one is not provided then one is created for you.
-
enable
(optional)
- Comma delimmited string. If it is not defined it defaults to
debug's
ENV
variable of DEBUG
.
-
levelFns
(optional)
- Array of strings, typically
['info', 'warn', 'error']
. Levels to evaulate and possibly wrap.
-
doFileLine
(optional)
- boolean defaults to
false
. Currently this is for node only to diplay the file and line number of the log output.
-
decorLevels
(optional)
- Array of strings, typically
['info', 'warn', 'error']
. Levels to add lazy evaluation and decorations (color-wrap, file info) to.
Basic Example:
const preacher = require('preacher');
console.debug = console.log;
const rootLogger = preacher({
loggerToWrap: console,
enable: 'demo,other',
doFileLine: true});
const demoLogger = rootLogger('demo');
const otherLogger = rootLogger('other');
const hiddenLogger = rootLogger('hidden');
const log1 = demoLogger.spawn('worker1');
const log2 = demoLogger.spawn('worker2');
const log3 = demoLogger.spawn('worker3');
const log4 = otherLogger.spawn('worker4');
const log5 = hiddenLogger.spawn('worker5');
log1.error('not really an error.');
log1.info('info');
log1.warn('not really a warning.');
setInterval( () => log1.debug('one'), 1000);
setInterval( () => log1.debug.red('red'), 1000);
setInterval(() => log2.debug(() => 'two'), 1100);
setInterval(() => log3.debug('three'), 1200);
setInterval(() => log4.debug(() => 'four'), 1150);
setInterval(() => {
hiddenLogger.debug(() => 'hidden root');
log5.debug(() => 'five');
}, 1155);