A simple appender for log4js that writes to a InfluxDB database. Built on top of the node-influxdb client.
Installation
npm install log4js
npm install log4js-influxdb-appender
Usage
Default configuration
const log4js = ;log4js;const logger = log4js;logger;logger;
This will result in a message recorded in the database log4js_db
, measurement default
, of an InfluxDB (running on localhost:8086
), as following :
name: default
time data level pid
---- ----- ------ ------
2020-05-01T10:13:00.999Z important string message DEBUG 6123
2020-05-01T10:13:01.999Z { param1: 'can serialize', param2: 'objects too' } TRACE 6123
Configuration
type
-log4js-influxdb-appender
host
-string
- (optional, default tolocalhost
) hostname or IP-address of the target serverport
-number
- (optional, default to8086
) port number of the target serverdatabase
-string
- (optional, default tolog4js_db
) name of the target databaseusername
-string
- (optional) user namepassword
-string
- (optional) user passwordmeasurement
-string
- (optional) name of the target measurement. If not present, will use the category name of the appender.fields
-array
- (optional, default to['data']
). Fields of the logging event to be used as fields in your InfluxDB.tags
-array
- (optional, default to['level', 'pid']
). Fields of the logging event to be used as tags in your InfluxDB.maxBatchSize
-number
- (optional, defaults to 1) number of logs to buffer before sending them to InfluxDB. Note that node-influxdb recommends several hundreds.layout
- (optional, defaults to layouts.messagePassThroughLayout) - the layout to use for logged messages.
Examples
const log4js = ;log4js;const logger = log4js;logger;
This will result in a message recorded in the database myDatabase
, measurement listOfScientists
, of an InfluxDB (running on localhost:8086
), as following :
name: listOfScientists
time cheese quantity scientist
---- ------ -------- ---------
2020-05-16T10:10:14.611Z roquefort 100 Marie Curie
Acknowlegments
License
Released under the MIT License.
Note that node-influxdb dependency has its own licensing.