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.
42 lines • 1.87 kB
TypeScript
/**
* Application Service: LogService
* Orchestrates log processing
*/
import { ILogger, LoggerMetrics, HealthStatus } from '../../domain/interfaces/ILogger';
import type { LogLevel } from '../../domain/value-objects/LogLevel';
import { ILogFilter } from '../../domain/interfaces/ILogFilter';
import { ILogBuffer } from '../../domain/interfaces/ILogBuffer';
import { ILogTransport } from '../../domain/interfaces/ILogTransport';
import { IContextProvider } from '../../domain/interfaces/IContextProvider';
export declare class LogService implements ILogger {
private readonly filter;
private readonly buffer;
private readonly transport;
private readonly contextProvider;
private readonly config;
private metrics;
private startTime;
constructor(filter: ILogFilter, buffer: ILogBuffer, transport: ILogTransport, contextProvider: IContextProvider, config: {
appName: string;
version: string;
environment: string;
labels: Record<string, string>;
dynamicLabels: Record<string, () => string | number>;
enableMetrics: boolean;
});
private initializeMetrics;
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;
private createLogEntry;
flush(): Promise<void>;
getMetrics(): LoggerMetrics;
getHealth(): HealthStatus;
destroy(): Promise<void>;
private updateMetrics;
}
//# sourceMappingURL=LogService.d.ts.map