A Loggly transport for winston.
A client implementation for Loggly in node.js. Check out Loggly's Node logging documentation for more.
var winston = require('winston');
//
// Requiring `winston-loggly-bulk` will expose
// `winston.transports.Loggly`
//
var {Loggly} = require('winston-loggly-bulk');
winston.add(new Loggly({options}));
The Loggly transport is based on Nodejitsu's node-loggly implementation of the Loggly API. If you haven't heard of Loggly before, you should probably read their value proposition. The Loggly transport takes the following options.
true
. If true, all the network errors will be logged to console.var winston = require('winston');
var { Loggly } = require('winston-loggly-bulk');
winston.add(new Loggly({
token: "TOKEN",
subdomain: "SUBDOMAIN",
tags: ["Winston-NodeJS"],
json: true
}));
winston.log('info', "Hello World from Node.js!");
This library has buffer support during temporary network outage. User can configure size of buffer (no. of logs to be stored during network outage).
Add these below configuration in code snippet to override the default values of buffer option size and retriesInMilliSeconds.
bufferOptions: {
size: 1000,
retriesInMilliSeconds: 60 * 1000
}
Our library uses ajax requests to send logs to Loggly, and as ajax requests take time to complete, logs can be lost when process.exit() is called because it forces an immediate exit. To exit gracefully and ensure that the last logs get to Loggly, we created a function called flushLogsAndExit(). It waits for 10 seconds and then calls process.exit() itself. This allows enough time for the logs to be sent to Loggly.
Here is an example of how to use the method:
var winston = require('winston');
var { flushLogsAndExit } = require('winston-loggly-bulk');
winston.log("info", "Hello World from Node.js!");
flushLogsAndExit();
tldr;?
: To break the winston codebase into small modules that work together.
The winston codebase has been growing significantly with contributions and other logging transports. This is awesome. However, taking a ton of additional dependencies just to do something simple like logging to the Console and a File is overkill.
npm install winston-loggly-bulk
Note: If you are using npm version 2, please run the below command:
npm install winston-loggly-bulk winston
Written in Jest. Testing that log events are correctly passed on.
npm test