2.1.0 • Published 10 years ago
logmore v2.1.0
logmore
Logger for node.js
Installation
$ npm install logmore
Usage
logmore let you create a logger by invoking the exported function. You can enable / disable a logger for a specified namespace.
Loggers are disable by default.
var http = require('http');
var logmore = require('logmore');
logmore.use(require('logmore-console')());
var logger = logmore('http');
logmore.enable('http', 'info');
http.createServer(function (req, res) {
logger.debug(req.method + ' ' + req.url); // this log will not be processed : min level is 'info'
res.end('Hello world !\n');
}).listen(1337, '127.0.0.1');
logger.info('Server running at http://127.0.0.1:1337');
Note : you can enable / disable a set of loggers with a single instruction :
logmore.enable(['sample:namespace', 'foo:bar'], 'info');
logmore.disable(['sample:namespace', 'foo:bar']);
Hierarchy
Namespaces are hierarchical. The separator is :
.
- Enabling the namespace
test:*
will enable each namespace in the hierarchy, such astest:sample
. - Enabling the namespace
test*
will enable the namespacetest
and each namespace in the hierarchy, such astest:sample
.
Enabled namespaces or namespaces hierarchy are stored so that if you create a new logger with an enabled namespace, it will be enabled.
Processors
logmore is a core. You can make it use processors to handle logs. To do this, call the use function. For example, this code will log
- to the console thanks to the 'logmore-console' module
- to a file thanks to the provided processor
var fs = require('fs');
var logmore = require('logmore');
logmore.use(require('logmore-console')());
logmore.use(function (namespace, level, messages) {
var log = '[' + namespace + '][' + level + ']';
messages.forEach(function (message) {
log += ' ' + message + '\n';
});
fs.appendFile('app.log', log);
});
logmore.enable('test:sample', 'trace');
var logger = logmore('test:sample');
logger.debug('simple log', {hello: 'world'});
You may also register processors for a specific logger. To do this :
var logmore = require('logmore');
logmore.enable('test:sample', 'trace');
var logger = logmore('test:sample');
logger.use(function (namespace, level, messages) {
if (level === 'error') {
console.log('Specific processor for the error level of ' + namespace);
}
});
logger.error('simple log', {hello: 'world'});