`js var logger = require('fluent-logger') // The 2nd argument can be omitted. Here is a default value for options. logger.configure('tag_prefix', { 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'}); `
Where only the record argument is required. If the label is set it will be appended to the configured tag.
$3
Both Singleton and Instance style can disable automatic reconnect allowing the user to handle reconnect himself `js logger.configure('tag_prefix', { host: 'localhost', port: 24224, timeout: 3.0, enableReconnect: false // defaults to true }); `
`js var FluentLogger = require('fluent-logger'); var EventTime = FluentLogger.EventTime; var logger = FluentLogger.createFluentSender('tag_prefix', { var eventTime = new EventTime(1489547207, 745003500); // 2017-03-15 12:06:47 +0900 logger.emit('tag', { message: 'This is a message' }, eventTime); `
Before using winston support, you should install it IN YOUR APPLICATION.
`js var winston = require('winston'); var config = { host: 'localhost', port: 24224, timeout: 3.0, requireAckResponse: true // Add this option to wait response from Fluentd certainly }; var fluentTransport = require('fluent-logger').support.winstonTransport(); var fluent = new fluentTransport('mytag', config); var logger = winston.createLogger({ transports: [fluent, new (winston.transports.Console)()] });
logger.log('info', 'this log record is sent to fluent daemon'); logger.info('this log record is sent to fluent daemon'); logger.info('end of log message'); logger.end();
`
NOTE If you use
winston@2, you can use fluent-logger@2.7.0 or earlier. If you use winston@3, you can use fluent-logger@2.8 or later.
$3
Several libraries use stream as output.
`js 'use strict'; const Console = require('console').Console; var sender = require('fluent-logger').createFluentSender('tag_prefix', { host: 'localhost', port: 24224, timeout: 3.0, reconnectInterval: 600000 // 10 minutes }); var logger = new Console(sender.toStream('stdout'), sender.toStream('stderr')); logger.log('this log record is sent to fluent daemon'); setTimeout(()=> sender.end(), 5000); `
Options
tag_prefix
The tag prefix string. You can specify
null when you use FluentSender directly. In this case, you must specify label when you call emit.
host
The hostname. Default value = 'localhost'.
See [socket.connect][1]
port
The port to listen to. Default value = 24224.
See [socket.connect][1]
path
The path to your Unix Domain Socket. If you set
path then fluent-logger ignores host and port.
See [socket.connect][1]
timeout
Set the socket to timetout after
timeout milliseconds of inactivity on the socket.
See [socket.setTimeout][2]
reconnectInterval
Set the reconnect interval in milliseconds. If error occurs then reconnect after this interval.
Message, PackedForward and CompressedPackedForward. Default is Message.
NOTE: We will change default to
PackedForward and drop Message in next major release.
flushInterval
Set flush interval in milliseconds. This option has no effect in
Message mode. The logger stores emitted events in buffer and flush events for each interval. Default 100.
messageQueueSizeLimit
Maximum number of messages that can be in queue at the same time. If a new message is received and it overflows the queue then the oldest message will be removed before adding the new item. This option has effect only in
Message mode. No limit by default.
security.clientHostname
Set hostname of this logger. Use this value for hostname based authentication.
security.sharedKey
Shared key between client and server.
security.username
Set username for user based authentication. Default values is empty string.
security.password
Set password for user based authentication. Default values is empty string.
sendQueueSizeLimit
Queue size limit in bytes. This option has no effect in