UNPKG

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.

35 lines 1.42 kB
/** * Infrastructure: LokiLogRepository * Concrete implementation of ILogRepository for Grafana Loki */ import { ILogRepository, RepositoryHealth } from '../../domain/repositories/ILogRepository'; import { LogEntry } from '../../domain/entities/LogEntry'; import { ICircuitBreakerService } from '../../domain/services/ICircuitBreakerService'; import { IHttpClient } from '../http/IHttpClient'; import { ILokiFormatter } from '../formatters/ILokiFormatter'; export interface LokiRepositoryConfig { readonly url: string; readonly tenantId: string; readonly authToken?: string; readonly timeout?: number; readonly maxRetries?: number; readonly retryDelay?: number; readonly compression?: boolean; readonly compressionLevel?: number; } export declare class LokiLogRepository implements ILogRepository { private readonly config; private readonly httpClient; private readonly formatter; private readonly circuitBreaker; private buffer; private errorCount; private lastSuccessfulFlush?; constructor(config: LokiRepositoryConfig, httpClient: IHttpClient, formatter: ILokiFormatter, circuitBreaker: ICircuitBreakerService); save(entry: LogEntry): Promise<void>; saveBatch(entries: LogEntry[]): Promise<void>; flush(): Promise<void>; getHealth(): Promise<RepositoryHealth>; private buildHeaders; } //# sourceMappingURL=LokiLogRepository.d.ts.map