@analog-tools/logger
Version:
Logging utility for AnalogJS applications
41 lines (40 loc) • 1.19 kB
TypeScript
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;
}