A smart logger that buffers the logs/data and posts/flushes it to a set destination periodically. Aggregates the logs and sends/writes them in a batch.
- Absolutely none
`npm install chronos-logger`
var chronos = require("chronos-logger");
var logger = chronos.logger(options);
logger.log({type:"info", time:"124684168","log this"});
logger.log({type:"error", time:"124684168","log this"});
console.log(logger.size()); // 128 bytes
console.log(logger.flush()); // manually flush the logs
console.log(logger.clear()); // clear all the buffered logs
"options" is a JSON containing some or all of the following properties:
- isJson - true if the logs have to be treated as JSON and sent as an array of JSON, false just treats logs as an array of strings
- encoding - available encoding are:
a.UTF-8
b.ASCII (fastest)
c.UTF16LE
d.UCS2
e.base64
f.binary
f. hex
- useFile - false: use a buffer only , true: data is written to a specified file
- maxBufferSize - Maximum size of buffer to be maintained in bytes
- maxLogsInBuffer - max logs to be maintained
- minLogsInBuffer - min logs to be present in buffer if it is to be flushed
- postOptions - typical http options required when posting data to the server, refer
- flushInterval - interval between two successive flushing of logs in buffer
- Total control over logging behavior - custom flush intervals, batch size (via maxBufferSize)
- Completely ASYNC
- Uses a singleton logger approach, only one logger is available to take care of your logging needs
- Buffer will be written/posted only when: (1) Buffer is full (2) maxLogsInBuffer has reached its limit
File output
Error handling
Gzip outgoing requests
Custome flushing/logging strategy