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 🙏

© 2026 – Pkg Stats / Ryan Hefner

logbin

v1.3.8

Published

NodeJS client for logbin.io

Readme

Logbin.io-client

Simple real-time logging system for your node applications.

##Installation Using npm:

npm install logbin

##Logger API Logger API is used to send logs from your node applications to the server.

###Initialization Initializing the Logger API requires configuration settings.

var Logbin = require( 'logbin' );

var config = {
  store: 'storename',
  token: 'validtoken',
  host: 'ec2-52-196-108-147.ap-northeast-1.compute.amazonaws.com'
};

var logger = new Logbin( config );

###Options Logger settings comes with the following options:

| Option | Definition | Required | |:------:| ---------- |:--------:| | store | Store name wherein your logs will be stored. This name must be lowercase, cannot begin with an underscore, and cannot contain commas. | required | | token | Token provided to you which will be used for authentication. | required | | port | (default = 5555 ) Port used by the server inbound. | optional | | host | (default = 'localhost') Hostname of the server inbound. | optional | | scope | ( default: 'server' ) This will be the scope of your logs. | optional | | requestTTL | ( default: 5 ) The standard ttl of requests in seconds when no response is received from the server. | optional | | console | ( default: false ) If set to true, logs are not sent to the server and will only show up in the console. | optional |

###Log Levels Log levels are error, warn, info, verbose, debug, and silly.

###Send Logs Sending logs is easy.

####Example:

logger.error( 'Something bad happened.' );
logger.info( { id: 12345, name: 'Margie', age: 23, action: 'login' } );
logger.log( 'warn', 'The night is dark and full of terrors.' );

###Scoping You can also instantiate new logger instance with a set scope from any logger instance created.

//some instance of a logger

var globals = logger.scope( 'global' );

globals.error( 'A global error occured.' );

###Method Chaining .ack() method is chainable.

####Example:

logger.ack().error( 'An error log.' )

###Transports You can select not to send your logs to the server, instead, log it directly to your console by setting the console property to true.

####Example:

var Logbin = require( 'logbin' );

var config = {
  store: 'storename',
  token: 'validtoken',
  console: true
};

var logger = new Logbin( config );

###Promise Sending a log with .ack() method returns a promise.

####Example:

var co = require( 'co' );

co( function *() {
  yield logger.ack().error( 'An error log.' ),                            // Send a log categorized by levels
  yield logger.ack().warn( 'Warning log.' ),
  yield logger.ack().info( { name: 'M. Saavedra', action: 'login' } ),     // You can also send an object
  yield logger.ack().verbose( 'Over medication is o-verbose.' ),
  yield logger.ack().debug( 'Log for debugging.' ),
  yield logger.ack().silly( 'Silly me.' ),
  yield logger.ack().log( 'info', 'This is an information.' );            // Or you can specify the level instead
} ).catch( error => console.log( error ) );                      // Catch reason of rejection

##LogStream API LogStream API is used to receive logs from your node applications in real-time.

###Initialization Initializing the LogStream API also requires configuration settings.

var LogStream = require( 'logbin' ).LogStream;

var config = {
  store: 'storename',
  token: 'validtoken',
  host: 'ec2-52-196-108-147.ap-northeast-1.compute.amazonaws.com'
};

var logstream = new LogStream( config );

###Options Configuration of the LogStream API comes with the following options:

| Option | Definition | Required | |:------:| ---------- |:--------:| | store | Store name from where the logs are received. This name must be lowercase, cannot begin with an underscore, and cannot contain commas. | required | | token | Used for authentication which will be provided to you. | required | | port | (default = 5555 ) Port used by the server inbound. | optional | | host | (default = 'localhost') Hostname of the server inbound. | optional | | level | (default = 'silly' ) Severity level of logs to be received. | optional | | schema | Object that follows JSON Schema draft 4 Standard. This will define the log filter. If not provided, you will receive all logs that is in range of the set severity level. | optional |

###Log Levels Logbin has predefined log levels which are error, warn, info, verbose, debug, and silly. Setting the level field in the LogStream API config object to info will allow you to receive logs with levels from info up to error. Leaving it to the default value which is silly will allow you to receive logs with all log levels.

###Log Filtering You can specify a filter to receive the logs you want by setting a schema. Logbin implements JSON Schema draft 4 standard for the logstream filter schema.

####Example:

// You can set the filter in the configuration settings
var config = {
  store: 'storename',
  token: 'validtoken',
  level: 'info',  // You will receive 'error', 'warn', and 'info',
  schema: {
    type: 'object',
    properties: {
      id: { type: 'number' },
      fname: { type: 'string', pattern: '^Margie$' },
      age: { type: 'number', maximum: 23 }
    }
  }
};

var logstream = new LogStream( config );

###On Log Event You can listen to the event when a log is received from the server.

####Example:

logstream.on( 'log', data => console.log( data ) ); // data will be in object form for easier manipulation

Adding custom event

You can add a custom event to be called when a specifig log arrives

Adding custom event when a specific log type (error/info/silly/etc) arrives

#####Example:

logstream.addCustomEvent( { event: 'mycustomevent', level: 'error' } );
} );

Adding custom event when a specific log type (error/info/silly/etc) and data arrives

#####Example:

// This will look into the logs sent looking for the occurence of the message
logstream.addCustomEvent( { event: 'mycustomevent', level: 'error', message: 'this is a log' } );

// Meanwhile in the logger
logger.error( 'this is a log' );
} );

Adding custom event when a specific log type (error/info/silly/etc) and custom data arrives

#####Example:

// This will look into the logs sent looking for the occurence of the message
logstream.addCustomEvent( { event: 'mycustomevent', level: 'error', mymsg: 'this is a log' } );

// Meanwhile in the logger
logger.error( { mymsg: 'this is a log' } );
} );

Adding custom event that will look for logs for a specified interval

#####Example:

// This will look into the logs for the specified interval (in milliseconds) and will return the logs matched after the interval.
logstream.addCustomEvent( { event: 'mycustomevent', level: 'error', interval: 5000 } );

Adding custom event that will look for logs for a specified interval and the limit of logs that should be received

#####Example:

// This event will look into the logs for the specified interval (in milliseconds) and limit, this custom event will be triggered on the logs exceed the limit
logstream.addCustomEvent( { event: 'mycustomevent', level: 'error', interval: 5000, limit: 1 } );

####Options Configuration for adding custom events

| Option | Definition | Required | |:------:| ---------- |:--------:| | event | the custom event name | required | | level | the log type/level | required | | message | the text occurence to search for in the logs sent | optional | | interval | in milliseconds, the time until the event is triggered | optional | | limit | the limit for the logs to be received, if limit is reached then the event is triggered. should come with interval option | optional |

###Listening for the custom events #####Example:

logstream.on( 'mycustomevent', ( msg, log ) => {
    console.log( msg ); // This is the message from the log stream.
    console.log( log ); // The log data
} );

##Server As of now, Logbin is still in its early stages of development. As the project initiates its testing phase, we need people to use the service to discover bugs and receive feedback for improvement. Fortunately, you can already use this service by connecting to the server with the following host.

Host: 'ec2-52-196-108-147.ap-northeast-1.compute.amazonaws.com'

Just add the hostname above in your config object to the API. During the testing phase, there is no token validation implemented yet so you can put any string to this field.

##License MIT