2.1.1 • Published 6 months ago

leadme v2.1.1

Weekly downloads
-
License
MIT
Repository
-
Last release
6 months ago

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 })

ParameterTypeDefaultDescription
logConfigObjectnullConfiguration for logging, supporting route paths and regex patterns. If not provided all routes will be logged in.
secretKeyStringRequiredSecret key for logging service. Obtained in leadme offer.
sessionEmailFieldStringuser.emailDefines the session field for the user's email.
debugBooleanfalseEnables debug mode with additional logs.

Example logConfig

{
  "/api/v1": { "req": true },
  "^/secure": { "req": ["email"] }
}
  • req: true logs the entire request.
  • req: ["email"] logs only the email field from the request.

Error Handling

  • If secretKey is missing, logging is disabled.

  • If logConfig is invalid, logging is disabled.

2.1.1

6 months ago

2.0.1

6 months ago

2.0.0

6 months ago

1.0.5

6 months ago

1.0.4

7 months ago

1.0.3

7 months ago

1.0.2

7 months ago

1.0.1

7 months ago

1.0.0

7 months ago