Commonly useful logging extensions over visionmedia's debug
Extremely lightweight and wraps over debug.
- Log levels - Drop in replacement for console, mostly (ie implements log, warn & error)
- Easy child instances
- Each log-level of a logger (parent or child), is its own debug instance.
- Debug is unpluggable - Simply don't pass debug to this, to unplug debug completely.
-
debug-pest is a extremely light wrapper over 'debug', and is purposely setup to use 'debug' as an optional dependency - to reduce weight where debug might only be needed for testing (for eg). If 'debug' is not provided, it will disable (.enable = false) the loggers silently, without affecting your code.
-
This implementation deviates slightly from the original convention set by debug.
The topmost namespace is not your app's name, but the log level. This is to allow configs like :
- ('errors:* , -logs:* , -warnings:* ') : Show all errors, but suppress logs & warnings, irrespective of module
const debug = require('debug');
debug.enable('*');
const debug-pest = require('debug-pest')(debug); // Don't pass debug, to unplug it.
const parent = new debug-pest('Parent');
/* Loggers are enabled only when debug is provided.
Using "parent.enabled &&" as below is not necessary, but may be more efficient when the loggers are disabled, than simply calling .log(), .warn(), .error() as is - because it avoids those function calls entirely.
*/
parent.enabled && parent.log('Hello. This is a log from parent');
parent.enabled && parent.warn('Hello. this is a warning from parent');
parent.enabled && parent.error('Hello. this is an error from parent');
const child = parent.child('child1');
child.enabled && child.log('Hello. This is a log from child1');
- Output to file(s), paired with a web based filtered log viewer.