strogger
Version:
📊 A modern structured logging library with functional programming, duck-typing, and comprehensive third-party integrations
39 lines • 1.18 kB
TypeScript
import type { LogEntry, Transport } from "../types";
export interface BatchConfig {
maxSize: number;
maxWaitTime: number;
maxBatchSize: number;
}
export interface BatchState {
logs: LogEntry[];
currentSize: number;
lastFlush: number;
flushTimer?: ReturnType<typeof setTimeout> | undefined;
}
export interface BatchedTransport extends Transport {
flush: () => Promise<void>;
getStats: () => BatchStats;
}
export interface BatchStats {
totalLogs: number;
totalBatches: number;
averageBatchSize: number;
lastFlushTime: number;
pendingLogs: number;
[key: string]: unknown;
}
/**
* Creates a batched transport wrapper around an existing transport
*/
export declare const createBatchedTransport: (transport: Transport, config?: BatchConfig) => BatchedTransport;
/**
* Creates a multi-transport batched logger
*/
export declare const createBatchedLogger: (transports: Transport[], config?: BatchConfig) => {
log: (entry: LogEntry) => Promise<void>;
setLevel: (level: number) => void;
getLevel: () => number;
flush: () => Promise<void>;
getStats: () => BatchStats[];
};
//# sourceMappingURL=batching.d.ts.map