2.1.1 • Published 6 months ago
leadme v2.1.1
LeadMe - Logger Middleware
Overview
Leadme
is a middleware function for logging request and response data in a Node.js application. It allows configurable logging based on route paths or regular expressions.
Features
Important: All successful events will be logged in the LeadMe application.
- Supports route-based and regex-based logging configuration.
- Logs request and response data.
- Allows filtering specific fields for logging.
- Debug mode for additional insights.
- All successful events will be logged in the LeadMe application.
Installation
npm i leadme
Usage
Import and Initialize
import express from "express";
import apiv1 from "./apiv1";
import { Leadme } from "leadme";
const app = express();
const leadme = new Leadme({ secretKey: "your-secret-key" });
app.use(leadme.middleware());
app.use("/api/v1", apiv1);
app.listen(3000, () => console.log("Server running on port 3000"));
Send custom event
import leadme from "../middlewares/logger-middleware";
try {
const eventDetails = {
type: "SIGN_IN", // Event type
email: "test@test.com", // Email to associate the event with a user (optional)
ip: "127.0.0.1", // IP address to identify the user (optional)
data: {
test: "TEST", // Additional data to log with the event (Any JSON data will suffice)
},
};
await leadme.event(eventDetails);
} catch (err) {
console.log(err, "ERROR WARNING");
}
Configuration Options
leadme({ logConfig, secretKey, sessionEmailField, debug })
Parameter | Type | Default | Description |
---|---|---|---|
logConfig | Object | null | Configuration for logging, supporting route paths and regex patterns. If not provided all routes will be logged in. |
secretKey | String | Required | Secret key for logging service. Obtained in leadme offer. |
sessionEmailField | String | user.email | Defines the session field for the user's email. |
debug | Boolean | false | Enables debug mode with additional logs. |
Example logConfig
{
"/api/v1": { "req": true },
"^/secure": { "req": ["email"] }
}
req: true
logs the entire request.req: ["email"]
logs only theemail
field from the request.
Error Handling
If
secretKey
is missing, logging is disabled.If
logConfig
is invalid, logging is disabled.