2.1.0 • Published 10 years ago

logmore v2.1.0

Weekly downloads
5
License
MIT
Repository
github
Last release
10 years ago

Codeship Status for etissieres/logmore

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 as test:sample.
  • Enabling the namespace test* will enable the namespace test and each namespace in the hierarchy, such as test: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'});

License

MIT

2.1.0

10 years ago

2.0.0

10 years ago

1.1.0

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago