fluent-logger

fluent-logger implementation for Node.js inspired by [fluent-logger-python].

fluent-logger for Node.js

fluent-logger implementation for Node.js inspired by fluent-logger-python.

$ npm install fluent-logger

Fluent daemon should listen on TCP port.

Singleton style

var logger = require('fluent-logger')
// The 2nd argument can be omitted. Here is a defualt value for options.
logger.configure('tag', {
   host: 'localhost',
   port: 24224,
   timeout: 3.0,
   reconnectInterval: 600000 // 10 minutes
});

// send an event record with 'tag.label'
logger.emit('label', {record: 'this is a log'});

Instance style

var logger = require('fluent-logger').createFluentSender('tag', {
   host: 'localhost',
   port: 24224,
   timeout: 3.0,
   reconnectInterval: 600000 // 10 minutes
});

The emit method has following signature

.emit([label string], , [timestamp number/date], [callback function])

Where only the record argument is required. If the label is set it will be appended to the configured tag.

Before using [log4js] support, you should install it IN YOUR APPLICATION.

var log4js = require('log4js');
log4js.addAppender(require('fluent-logger').support.log4jsAppender('mytag', {
   host: 'localhost',
   port: 24224,
   timeout: 3.0
}));

var logger = log4js.getLogger('foo');
logger.info('this log record is sent to fluent daemon');

You can add log level after tag automatically.

var log4js = require('log4js');
log4js.addAppender(require('fluent-logger').support.log4jsAppender('mytag', {
   host: 'localhost',
   port: 24224,
   timeout: 3.0,
   levelTag: true
}));

var logger = log4js.getLogger('foo');
logger.info('this log record is sent to fluent daemon');

If levelTag is true, tag is "mytag.INFO". If levelTag is false, tag is "mytag".

You can handle inner events such as 'error' it is raised when fluentd is down.

var log4js = require('log4js');
var appender = require('fluent-logger').support.log4jsAppender('mytag', {
  host: 'localhost',
  port: 24224,
  timeout: 3.0
});
appender.on('error', function(err) {
  // Handle err object
  console.log(err);
});
log4js.addAppender(appender);

tag

The tag string.

host

The hostname. Default value = 'localhost'.

See socket.connect

port

The port to listen to. Default value = 24224.

See socket.connect

path

The path to your Unix Domain Socket. If you set path then fluent-logger ignores host and port.

See socket.connect

timeout

Set the socket to timetout after timeout milliseconds of inactivity on the socket.

See socket.setTimeout

reconnectInterval

Set the reconnect interval in milliseconds. If error occurs then reconnect after this interval.

verbose

If set true, verbose output.

Apache License, Version 2.0.

This package is compatible with NodeJS versions > 0.10.