utility-loggerai

Event logger to be used in Node/Express or React routers

Usage no npm install needed!

<script type="module">
  import utilityLoggerai from 'https://cdn.skypack.dev/utility-loggerai';
</script>

README

utility-loggerai

utility-logger is an event logger for Node/Express and React routers.

It can be installed via git clone or NPM install.

GitHub: git clone https://github.com/turing-mine/utility-logger.git

NPM: npm install utility-loggerai

After an npm install your app's package.json should contain the dependency "utility-loggerai": "^3.9.1"

Files and scripts

utility logger is comprised of two Node scripts, including their corresponding TypeScript files

logger.js

In your app, you can either import or require this module:

import Logger from 'utility-loggerai'

const Logger = require('utility-loggerai')

test-logger.js

test-logger.js can be run with the NPM test script command:

npm test

This test will perform 3 sanity checks, making sure events are being recorded, and returning the correct response payload.

Compiling

This module also includes logger.ts and test-logger.ts in the GitHub project. After installing it in your app, copy the ts files to your app's node_modules/utility-loggerai directory, and run

node_modules/typescript/bin/tsc node_modules/utility-loggerai/logger.ts

Usage

To begin using the logger function, add the following line to your code:

let eventLogger = Logger()

To add an event to the event series, call the function without any arguments:

eventLogger()

To get a series count for a pre-determined time span, pass the timespan in milliseconds. For instance, to get a count of the last 5 minutes of logged events, add this line to your code:

eventLogger(300000)

logger responses

The logger will return two types of data, depending on the request.

For eventLogger(), the logger will add a single timestamped event to the series, and return a string representation of a json object containing the timestamp:

{"timestamp": "1572323990919"}

For eventLogger(300000) (or any timespan in milliseconds), the following string will be returned with the series count for that timespan:

{"timestamp": "1572323990919", "count": "42"}

Caveats

The timespan of the event series is limited to the last 5 minutes of events. This value can be changed in one line of the logger.js file:

var baseLimit = 300000

This is the upper-limit of the series count that can be returned. Also, any event that is past the 5 minutes span of the current request will not be counted, and the entire series is periodically trimmed to the last 5 minutes from the current time.