UNPKG

@nxtwebmasters/nxt-smart-logger

Version:

A configurable smart logger for web apps that supports server and Google Tag Manager (GTM) logging with user/session context.

57 lines (56 loc) 1.58 kB
declare global { interface Window { dataLayer?: any[]; } } export interface StructuredLog { timestamp: string; level: string; message: string; tags?: string[]; context: Record<string, any>; meta: { url: string; userAgent?: string; traceId?: string; sessionId?: string; [key: string]: any; }; data?: any; } export declare class ConsoleInterceptor { private logQueue; private batchSize; private flushInterval; private enableGTM; private enableServer; private contextProvider; private serverLogger; private originalConsole; private customLevels; private logger; private defaultSessionId; private generateTraceId; private persistentContext; private persistentTags; constructor(options?: { batchSize?: number; flushInterval?: number; enableGTM?: boolean; enableServer?: boolean; contextProvider?: () => Record<string, any>; serverLogger?: (logs: StructuredLog[]) => Promise<void>; customLevels?: string[]; generateTraceId?: () => string; filterLevels?: string[]; }); overrideConsole(): void; setupCustomLogger(): void; setContext(ctx: Record<string, any>): void; clearContext(): void; clearTags(): void; getLogger(): Record<string, any>; enqueueLog(level: string, args: any[], tags?: string[], extraContext?: Record<string, any>, extraMeta?: Record<string, any>): void; setupFlushInterval(): void; flushLogs(): Promise<void>; }