@voodoo.io/fast-logger

Fast logger with a buffer

Usage no npm install needed!

<script type="module">
  import voodooIoFastLogger from 'https://cdn.skypack.dev/@voodoo.io/fast-logger';
</script>

README

fast-logger

Fast logger with buffer


npm version

Purpose

Simple fast logger which contain a LRU cache to avoid big spike to the stack of logs.

Compatibility

Supported and tested : >= 8.10

Version Supported Tested
12.x yes yes
10.x yes yes
9.x yes yes
8.x yes yes

Installation

$ npm install @voodoo.io/fast-logger --save

Usage

You must set in your var env: APP_NAME
Accepted format:

  • string
  • array
  • object
  • Error

You can provide a var env: LOG_LEVEL. For example, setting "warn" will disabled trace, debug and info logs. Accepted values:

  • trace
  • debug
  • info (default if wrong or none defined)
  • warn
  • error

Basic Usage

const logger = require('@voodoo.io/fast-logger');

logger.info('My log', {key: 'value'}, [0,1,2]);
logger.error('My error');
// output:
// {"app":"MyAppName","time":"2020-02-11T16:18:07.731Z","level":"info","msg":"My log","key":"value","data_0":[0,1,2]}
// {"app":"MyAppName","time":"2020-02-11T16:18:07.731Z","level":"error","msg":"My error"}

Buffer

The logger has a buffer of 100 ms by default if the logs are exactly the same (same objects, not same JSON-equivalent object) More information at: https://www.npmjs.com/package/lru-cache

const logger = require('@voodoo.io/fast-logger');

// It will log only one time `My log` and `My error`
for (let i = 0; i < 100; i++) {
    logger.info('My log');
    logger.error('My error');
}

Options

You can disable the logger by calling the function setCacheTTL with a negative integer value or you can customize the TTL of the items in the cache

const logger = require('@voodoo.io/fast-logger');

// cache is disable
logger.setCacheTTL(-1);

// buffer of 1 sec in the cache
logger.setCacheTTL(1000);

Test

$ npm test

Coverage report can be found in coverage/.