Logger interface for structured logging.

logger.info('User logged in', { userId: '123', timestamp: new Date() });
logger.error('Failed to process order', { orderId: '456', error });
logger.debug('Processing request', { method: 'POST', path: '/api/users' });
interface Logger {
    log(
        level: LogLevel,
        message: string,
        context?: Record<string, unknown>,
    ): void;
    debug(message: string, context?: Record<string, unknown>): void;
    info(message: string, context?: Record<string, unknown>): void;
    warn(message: string, context?: Record<string, unknown>): void;
    error(message: string, context?: Record<string, unknown>): void;
    fatal(message: string, context?: Record<string, unknown>): void;
}

Methods

  • Logs a message at a specific level with optional context.

    Parameters

    • level: LogLevel

      The log level

    • message: string

      The log message

    • Optionalcontext: Record<string, unknown>

      Optional context object

    Returns void

    logger.log(LogLevel.INFO, 'User created', { userId: '123' });
    
  • Logs a debug message.

    Parameters

    • message: string

      The log message

    • Optionalcontext: Record<string, unknown>

      Optional context object

    Returns void

    logger.debug('Processing request', { method: 'POST' });
    
  • Logs an info message.

    Parameters

    • message: string

      The log message

    • Optionalcontext: Record<string, unknown>

      Optional context object

    Returns void

    logger.info('User logged in', { userId: '123' });
    
  • Logs a warning message.

    Parameters

    • message: string

      The log message

    • Optionalcontext: Record<string, unknown>

      Optional context object

    Returns void

    logger.warn('Rate limit approaching', { current: 95, limit: 100 });
    
  • Logs an error message.

    Parameters

    • message: string

      The log message

    • Optionalcontext: Record<string, unknown>

      Optional context object (should include error)

    Returns void

    logger.error('Database connection failed', { error, retryCount: 3 });
    
  • Logs a fatal error message.

    Parameters

    • message: string

      The log message

    • Optionalcontext: Record<string, unknown>

      Optional context object (should include error)

    Returns void

    logger.fatal('Application crashed', { error, stack: error.stack });