erel
v1.1.0
Published
Express-route-exit-log (EREL) is an express middleware package to log useful route info, when route execution is finished
Downloads
18
Maintainers
Readme
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 erel
Screenshot
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 object
data
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();
}