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

bunyan-loggly

v2.0.1

Published

A bunyan stream to transport logs to loggly

Downloads

28,423

Readme

bunyan-loggly

A bunyan stream to send logs through to loggly.

Configuration

bunyan-loggly uses node-loggly under the hood. As such, when configuring bunyan-loggly as a stream for bunyan, you need to pass in the standard and required node-loggly configuration object.

For example:

{
    token: "your-really-long-input-token",
    subdomain: "your-subdomain"
}

Usage

This is a basic usage example.

var bunyan = require('bunyan');
var Bunyan2Loggly = require('bunyan-loggly');
var logglyConfig = {
    token: 'your-account-token',
    subdomain: 'your-sub-domain',
};

var logglyStream = new Bunyan2Loggly(logglyConfig);

// create the logger
var logger = bunyan.createLogger({
    name: 'logglylog',
    streams: [
        {
            type: 'raw',
            stream: logglyStream,
        },
    ],
});

logger.info({});

Please note: you MUST define type: 'raw' as bunyan-loggly expects to receive objects so that certain values can be changed as required by loggly (i.e. time to timestamp).

Buffering

bunyan-loggly supports basic buffering by default and when setup, will only send your logs through to loggly on every x logs. To setup buffering, just pass an integer as the second parameter when creating a new instance of Bunyan2Loggly:

var bunyan = require('bunyan');
var Bunyan2Loggly = require('bunyan-loggly');
var logglyConfig = {
    token: 'your-account-token',
    subdomain: 'your-sub-domain',
};
var bufferLength = 5;

var logglyStream = new Bunyan2Loggly(logglyConfig, bufferLength);

// create the logger
var logger = bunyan.createLogger({
    name: 'logglylog',
    streams: [
        {
            type: 'raw',
            stream: logglyStream,
        },
    ],
});

logger.info({}); // won't send to loggly
logger.info({}); // won't send to loggly
logger.info({}); // won't send to loggly
logger.info({}); // won't send to loggly
logger.info({}); // will send to loggly
logger.info({}); // won't send to loggly

Buffer Timeout

When buffering, a timeout can be provided to force flushing the buffer after a period of time. To setup a flush timeout, pass a timeout value (in ms) as the third parameter when creating a new instance of Bunyan2Loggly:

var bunyan = require('bunyan');
var Bunyan2Loggly = require('bunyan-loggly');
var logglyConfig = {
    token: 'your-account-token',
    subdomain: 'your-sub-domain',
};
var bufferLength = 5;
var bufferTimeout = 500;

var logglyStream = new Bunyan2Loggly(logglyConfig, bufferLength, bufferTimeout);

// create the logger
var logger = bunyan.createLogger({
    name: 'logglylog',
    streams: [
        {
            type: 'raw',
            stream: logglyStream,
        },
    ],
});

logger.info({}); // will be sent to loggly in 500ms if buffer threshold is not reached

Turning off buffering

You can turn off buffering by passing isBulk: false to the bunnyan2loggly config object.

var bunyan = require('bunyan');
var Bunyan2Loggly = require('bunyan-loggly');
var logglyConfig = {
    token: 'your-account-token',
    subdomain: 'your-sub-domain',
    isBulk: false,
};

var logglyStream = new Bunyan2Loggly(logglyConfig);

// create the logger
var logger = bunyan.createLogger({
    name: 'logglylog',
    streams: [
        {
            type: 'raw',
            stream: logglyStream,
        },
    ],
});

logger.info({}); // sent to loggly
logger.info({}); // sent to loggly
logger.info({}); // sent to loggly

Loggly request information

Each time log content is sent to loggly, the result of this request will be passed to the optional callback paramer logglyCallback

var bunyan = require('bunyan');
var Bunyan2Loggly = require('bunyan-loggly');
var logglyConfig = {
    token: 'your-account-token',
    subdomain: 'your-sub-domain',
};

function logglyCallback(error, result, content) {
    // handle loggly callback
}

var logglyStream = new Bunyan2Loggly(logglyConfig, null, null, logglyCallback);