logs-interceptor
Version:
High-performance, production-ready log interceptor for Node.js applications with Loki integration. Built with Clean Architecture principles. Supports Node.js, Browser, and Node-RED.
41 lines • 1.54 kB
TypeScript
import type { LogLevel } from '../value-objects/LogLevel';
/**
* Main logger interface
* Follows Interface Segregation Principle
*/
export interface ILogger {
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;
log(level: LogLevel, message: string, context?: Record<string, unknown>): void;
trackEvent(eventName: string, properties?: Record<string, unknown>): void;
flush(): Promise<void>;
getMetrics(): LoggerMetrics;
getHealth(): HealthStatus;
destroy(): Promise<void>;
}
export interface LoggerMetrics {
readonly logsProcessed: number;
readonly logsDropped: number;
readonly logsSanitized: number;
readonly flushCount: number;
readonly errorCount: number;
readonly bufferSize: number;
readonly avgFlushTime: number;
readonly lastFlushTime: number;
readonly memoryUsage: number;
readonly cpuUsage: number;
readonly circuitBreakerTrips: number;
}
export interface HealthStatus {
readonly healthy: boolean;
readonly lastSuccessfulFlush: number;
readonly consecutiveErrors: number;
readonly bufferUtilization: number;
readonly uptime: number;
readonly memoryUsageMB: number;
readonly circuitBreakerState: string;
}
//# sourceMappingURL=ILogger.d.ts.map