npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

winston-loggly-bulk

v3.3.2

Published

A Loggly transport for winston

Downloads

118,570

Readme

winston-loggly-bulk

A Loggly transport for winston.

Version npmnpm Downloads

NPM

A client implementation for Loggly in node.js. Check out Loggly's Node logging documentation for more.

Usage

  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.

  • subdomain: The subdomain of your Loggly account. [required]
  • token: The access token (previously inputToken) [required]
  • auth: The authentication information for your Loggly account.
  • json: If true, messages will be sent to Loggly as JSON.
  • tags: An array of tags to send to loggly.
  • isBulk: If true, sends messages using bulk url
  • stripColors: Strip color codes from the logs before sending
  • bufferOptions: Buffer options has two configurations.
    • size: Number of logs to be buffered.
    • retriesInMilliSeconds: Time in milliseconds to retry sending buffered logs.
  • timestamp: If false, library will not include timestamp in log events.
    • Note: Library includes timestamp by default when we do not set timestamp option.
  • networkErrorsOnConsole: The library keep track of different network errors and can log them to console. By default, logging errors on console is disabled and can be enabled easily by setting this parameter's value to true. If true, all the network errors will be logged to console.

Sample Working Code Snippet

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!");

Buffer Support

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
}  
  • Note: The default value of buffer size and retries in milliseconds are 500 and 30000 (30 seconds) respectively.

Flush logs and exit

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();

Motivation

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.

Installation

  npm install winston-loggly-bulk

Note: If you are using npm version 2, please run the below command:

  npm install winston-loggly-bulk winston

Run Tests

Written in Jest. Testing that log events are correctly passed on.

  npm test

Author: Charlie Robbins

Contributors: Loggly, Shweta Jain,