UNPKG

@analog-tools/logger

Version:

Logging utility for AnalogJS applications

41 lines (40 loc) 1.19 kB
import { LogLevelEnum } from '../logger.types'; import { DeduplicationConfig, ILogDeduplicator } from './deduplication.types'; /** * Type for message formatter function */ export type MessageFormatter = (level: LogLevelEnum, message: string, context?: string) => string; /** * Simple log deduplicator that batches identical messages */ export declare class LogDeduplicator implements ILogDeduplicator { private config; private formatMessage; private entries; private flushTimer?; constructor(config: DeduplicationConfig, formatMessage: MessageFormatter); /** * Add a message to the deduplicator */ addMessage(level: LogLevelEnum, message: string, context?: string): boolean; /** * Flush all pending messages immediately */ flush(): void; /** * Destroy the deduplicator and clean up resources */ destroy(): void; /** * Generate a fingerprint for message deduplication */ private generateFingerprint; /** * Schedule a flush after the configured window */ private scheduleFlush; /** * Output a batched message with count if needed */ private outputMessage; }