• Create a logger middleware for debugging

    Creates middleware that logs request and response information. Supports multiple output formats and custom filtering.

    Parameters

    Returns FejMiddlewareFunction

    Middleware function

    Example: Basic logging (default format)

    import { createFej, createLoggerMiddleware } from 'fej';

    const api = createFej();
    api.use('logger', createLoggerMiddleware());
    // Output: → GET https://api.example.com/users
    // ← GET https://api.example.com/users - 200 (123ms)

    Example: JSON format

    api.use('logger', createLoggerMiddleware({
    format: 'json',
    }));
    // Output: {"type":"request","method":"GET","url":"...","timestamp":"..."}

    Example: Detailed format with headers

    api.use('logger', createLoggerMiddleware({
    format: 'detailed',
    logRequest: true,
    logResponse: true,
    }));

    Example: Custom formatter

    api.use('logger', createLoggerMiddleware({
    format: (ctx, duration) => {
    return `[${ctx.request.init.method || 'GET'}] ${ctx.request.url} took ${duration}ms`;
    },
    }));

    Example: With filtering

    api.use('logger', createLoggerMiddleware({
    filter: (ctx) => {
    // Only log POST requests
    return ctx.request.init.method === 'POST';
    },
    }));