1.3.8 • Published 8 months ago

echortech-logging v1.3.8

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

echortech-logging

A robust logging middleware for Express.js applications that provides structured logging with correlation IDs, trace IDs, and standardized log formats.

Installation

npm install echortech-logging

Features

  • Structured logging for Express.js applications
  • Support for info, warn, and error log levels
  • Automatic correlation ID and trace ID tracking
  • Request timing and response metrics
  • Custom tagging support

Usage

const express = require('express');
const echorLogger = require('echortech-logging'); 

const app = express();
const PORT = process.env.PORT || 3000;

// Middleware to simulate request info
app.use((req, res, next) => {
  req.info = { received: Date.now() };
  req.auth = { credentials: { sub: 'user123' } };
  req.correlationId = 'correlation-id-123';
  req.traceId = 'trace-id-123';
  next();
});

// Success route
app.get('/success', (req, res) => {
  const data = {
    statusCode: 200,
    message: 'This is a success message',
    responseTime: 123,
    result: { key: 'value' }
  };
  echorLogger.info(req, ['SUCCESS_TAG'], data);
  res.status(200).send('Success logged');
});

// Warning route
app.get('/warn', (req, res) => {
  const data = {
    statusCode: 200,
    message: 'This is a warning message',
    responseTime: 150,
    result: { key: 'value' }
  };
  echorLogger.warn(req, ['WARN_TAG'], data);
  res.status(200).send('Warning logged');
});

// Error route
app.get('/error', (req, res) => {
  const error = new Error('This is an error message');
  const data = {
    statusCode: 500,
    error: error.message,
    message: 'An error occurred',
    responseTime: 200
  };
  echorLogger.error(req, ['ERROR_TAG'], data, error);
  res.status(500).send('Error logged');
});

app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});

API Reference

echorLogger.info(req, tags, data)

Logs information level messages.

echorLogger.warn(req, tags, data)

Logs warning level messages.

echorLogger.error(req, tags, data, error)

Logs error level messages with error stack traces.

Parameters

  • req: Express request object containing:
    • info.received: Request receipt timestamp
    • auth.credentials.sub: User identifier
    • correlationId: Request correlation ID
    • traceId: Request trace ID
  • tags: Array of string tags for log categorization
  • data: Object containing log data
  • error: (Optional) Error object for error logging

Example Data Structure

{
  statusCode: 200,
  message: 'Log message',
  responseTime: 123,
  result: { key: 'value' }
}
1.3.8

8 months ago

1.3.7

9 months ago

1.3.6

10 months ago

1.3.5

10 months ago

1.3.4

10 months ago

1.3.3

10 months ago

1.3.2

10 months ago

1.3.1

10 months ago

1.3.0

11 months ago

1.2.9

11 months ago

1.2.8

11 months ago

1.2.7

11 months ago

1.2.6

11 months ago

1.2.5

11 months ago

1.2.4

11 months ago

1.2.3

11 months ago

1.2.2

11 months ago

1.2.1

11 months ago