erel v1.1.0
Features
- Written in TypeScript
- Included types for intellisense in IDE
- Supports both CJS and ESM modules
- Small package and easy to set up
- Support for custom logging solution
- Provides route insights like IP address, status code, execution time. etc
Install
# NPM
npm i erel --save
# Yarn
yarn add erelScreenshot
Logging route insights using custom logger and EREL
Usage
- For JavaScript
const express = require('express');
const app = express();
// Import exitLog from erel
const { exitLog } = require('erel');
// Use your custom logging solution (optional but preferred)
const customLogger = (data, req, res) => {
Logger.info(
`${data.timestamp} - ${data.ip} - ${data.method} - ${data.route} - ${data.statusCode} - ${data.responseTime}`,
);
};
exitLog.setLogger(customLogger);
// Configure express app to use the middleware
app.use(exitLog.middleware);- For TypeScript
import * as express from 'express';
const app = express();
// import exitLog and LoggerCallback from erel
import { exitLog, LoggerCallback } from 'erel';
// Use your custom logging solution (optional but preferred)
const customLogger: LoggerCallback = (data, req, res) => {
Logger.info(
`${data.timestamp} - ${data.ip} - ${data.method} - ${data.route} - ${data.statusCode} - ${data.responseTime}`,
);
};
exitLog.setLogger(customLogger);
// Configure express app to use the middleware
app.use(exitLog.middleware);API Reference
exitLog
exitLog.setLogger
setLogger method can be used to set your custom Logging function which will be called along with the request insights.
It accepts a logger function as argument which implements the LoggerCallback interface. See LoggerCallback for more details.
// Example
import { exitLog } from 'erel';
// req and res is also passed to log custom objects, like req.userId
exitLog.setLogger((data, req, res) => {
Logger.log(`${data.timestamp} - ${req.userId} - ${data.ip} - ${data.statusCode}`);
});exitLog.middleware
middleware is the inbuilt middleware function to be configured with express to use. This middleware will call the custom Logger function (if set using exitLog.setLogger), otherwise the default Logger.
// Example
import * as express from 'express';
import { exitLog } from 'erel';
const app = express();
app.use(exitLog.middleware);LoggerCallback
LoggerCallback is an interface for the custom logger function to be used.
type LoggerCallback = (data: exitData, req?: Request, res?: Response) => void;
// data -> request insights
// req -> express request object
// res -> express response objectdata contains the following properties
| Property | Type | Description |
|--------------|:-------------------:|:---------------------------------------------------:|
| rawEnterDate | Date | Date when request entered the route |
| rawExitDate | Date | Date when request finished route execution |
| timestamp | string | Timestamp when route finished execution |
| statusCode | number | Response status code |
| route | string | Route accessed |
| ip | string | undefined | IP address of the request |
| responseTime | number | Time taken in millisecond to finish route execution |
| method | string | Request method to access the endpoint |
Need more insights?
Consider opening a feature request here.
License
Build with ♡ by
Bhumij Gupta
if (repo.isAwesome || repo.isHelpful) {
StarRepo();
}