/** * Logger class for structured logging with multiple log levels * * Features: * - Multiple log levels: DEBUG, INFO, WARN, ERROR * - Configurable through environment variables * - Timestamp support * - Context/namespace support for better log organization * - Performance measurement utilities * - Colored output (optional) * - Silent mode for testing */ export declare enum LogLevel { DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3, SILENT = 4 } export interface LoggerOptions { /** Minimum log level to display */ level?: LogLevel; /** Enable/disable timestamps in log messages */ timestamps?: boolean; /** Enable/disable colored output (when supported) */ colors?: boolean; /** Context/namespace for this logger instance */ context?: string; /** Prefix for all log messages */ prefix?: string; } export interface PerformanceTimer { /** Start time in milliseconds */ startTime: number; /** Label for the timer */ label: string; } /** * Main Logger class */ export declare class Logger { private level; private timestamps; private colors; private context; private prefix; private static readonly COLORS; constructor(options?: LoggerOptions); /** * Get log level from environment variables * Supports: LOG_LEVEL, DEBUG, NODE_ENV */ private getLogLevelFromEnv; /** * Determine if colored output should be used */ private shouldUseColors; /** * Format timestamp for log messages */ private getTimestamp; /** * Apply color to text (if colors are enabled) */ private colorize; /** * Format a log message with all metadata */ private formatMessage; /** * Internal logging method */ private log; /** * Log debug message (verbose/diagnostic information) */ debug(message: string, ...args: any[]): void; /** * Log info message (general information) */ info(message: string, ...args: any[]): void; /** * Log warning message (potential issues) */ warn(message: string, ...args: any[]): void; /** * Log error message (errors and exceptions) */ error(message: string, error?: Error | any, ...args: any[]): void; /** * Create a performance timer */ startTimer(label: string): PerformanceTimer; /** * End a performance timer and log the duration */ endTimer(timer: PerformanceTimer, level?: LogLevel): void; /** * Log a performance measurement directly */ logPerformance(label: string, durationMs: number, metadata?: Record): void; /** * Create a child logger with additional context */ createChild(context: string, options?: Partial): Logger; /** * Set the minimum log level */ setLevel(level: LogLevel): void; /** * Get the current log level */ getLevel(): LogLevel; /** * Enable or disable timestamps */ setTimestamps(enabled: boolean): void; /** * Enable or disable colors */ setColors(enabled: boolean): void; /** * Check if a log level is enabled */ isLevelEnabled(level: LogLevel): boolean; /** * Check if debug logging is enabled */ isDebugEnabled(): boolean; } /** * Create a default logger instance */ export declare function createLogger(options?: LoggerOptions): Logger; /** * Global default logger instance */ export declare const defaultLogger: Logger; //# sourceMappingURL=logger.d.ts.map