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.
48 lines • 1.63 kB
TypeScript
/**
* Presentation: LoggerFactory
* Factory for creating Logger instances with dependency injection
*/
import { Logger } from './Logger';
import { LogLevel } from '../domain/entities/LogEntry';
export interface LoggerConfig {
readonly transport: {
readonly url: string;
readonly tenantId: string;
readonly authToken?: string;
readonly timeout?: number;
readonly maxRetries?: number;
readonly retryDelay?: number;
readonly compression?: boolean;
readonly compressionLevel?: number;
};
readonly appName: string;
readonly version?: string;
readonly environment?: string;
readonly labels?: Record<string, string>;
readonly dynamicLabels?: Record<string, () => string | number>;
readonly buffer?: {
readonly maxSize?: number;
readonly flushInterval?: number;
readonly maxAge?: number;
readonly autoFlush?: boolean;
readonly maxMemoryMB?: number;
};
readonly filter?: {
readonly levels?: readonly LogLevel[];
readonly patterns?: readonly RegExp[];
readonly samplingRate?: number;
readonly maxMessageLength?: number;
readonly sanitize?: boolean;
readonly sensitivePatterns?: readonly RegExp[];
};
readonly circuitBreaker?: {
readonly enabled?: boolean;
readonly failureThreshold?: number;
readonly resetTimeout?: number;
readonly halfOpenRequests?: number;
};
}
export declare class LoggerFactory {
static create(config: LoggerConfig): Logger;
}
//# sourceMappingURL=LoggerFactory.d.ts.map