leadme
v2.1.9
Published
Express middleware for logging to external service
Maintainers
Readme
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 leadmeUsage
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: "[email protected]", // 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: truelogs the entire request.req: ["email"]logs only theemailfield from the request.
Error Handling
If
secretKeyis missing, logging is disabled.If
logConfigis invalid, logging is disabled.
