@qvlt/core-logger
Version:
Structured logging for web applications
1 lines • 27.5 kB
Source Map (JSON)
{"version":3,"sources":["../src/logger.ts","../src/initialization.ts","../src/util/devConsole.ts","../src/transport/ConsoleTransport.ts","../src/transport/HttpTransport.ts","../src/transport/StdoutTransport.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["// logging/logger.ts\nimport type { Transport } from './transport/types';\n\nexport type Level = 'debug' | 'info' | 'warn' | 'error';\n\ntype BaseCtx = Record<string, unknown>;\n\nexport interface LoggerInterface {\n log(lvl: Level, event: string, ctx?: BaseCtx, error?: unknown): void;\n debug(event: string, ctx?: BaseCtx): void;\n info(event: string, ctx?: BaseCtx): void;\n warn(event: string, ctx?: BaseCtx): void;\n error(event: string, ctx?: BaseCtx, error?: unknown): void;\n child(component: string, extra?: BaseCtx): LoggerInterface;\n time<T>(event: string, f: () => Promise<T> | T, c?: BaseCtx): Promise<T>;\n}\n\nexport type LogEvent = {\n ts: number;\n lvl: Level;\n app?: string;\n env?: string;\n ver?: string;\n component?: string;\n event: string;\n ctx?: BaseCtx;\n err?: { message: string; stack?: string; name?: string; code?: string | number };\n traceId?: string;\n sessionId?: string;\n};\n\ntype Init = {\n app: string;\n env: 'development' | 'test' | 'production';\n ver?: string;\n level?: Level; // minimum level to emit\n sample?: Partial<Record<Level, number>>; // 0..1 per-level sampling\n defaultCtx?: BaseCtx; // always included\n maxBatch?: number; // configurable batch size\n flushIntervalMs?: number; // interval for flushing queued logs\n transport: Transport | Transport[];\n};\n\nconst levelOrder: Record<Level, number> = { debug: 10, info: 20, warn: 30, error: 40 };\n\nexport class Logger implements LoggerInterface {\n private app: string;\n private env: Init['env'];\n private ver?: string;\n private level: Level;\n private sample: Required<Init>['sample'];\n private defaultCtx: BaseCtx;\n private sessionId: string;\n private maxBatch: number;\n private flushIntervalMs: number;\n private transports: Transport[];\n private maxQueue = 10_000; // optional cap\n\n private queue: LogEvent[] = [];\n private _flushTimer: ReturnType<typeof setInterval> | null = null;\n private _onBeforeUnload?: () => void;\n private _onProcessExit?: () => void;\n\n constructor(init: Init) {\n this.app = init.app;\n this.env = init.env;\n this.ver = init.ver;\n this.level = init.level ?? (this.env === 'production' ? 'info' : 'debug');\n const clamp = (n: number) => (n < 0 ? 0 : n > 1 ? 1 : n);\n this.sample = {\n debug: 1,\n info: 1,\n warn: 1,\n error: 1,\n ...(init.sample ? Object.fromEntries(Object.entries(init.sample).map(([k, v]) => [k, clamp(v as number)])) : {}),\n } as Required<Init>['sample'];\n this.defaultCtx = init.defaultCtx ?? {};\n this.maxBatch = init.maxBatch ?? 20;\n this.flushIntervalMs = init.flushIntervalMs ?? 5000;\n this.sessionId = Math.random().toString(36).slice(2);\n this.transports = Array.isArray(init.transport) ? init.transport : [init.transport];\n\n // timers for both browser & Node\n if (typeof window !== 'undefined' && window.addEventListener) {\n this._onBeforeUnload = () => this.flush();\n window.addEventListener('beforeunload', this._onBeforeUnload);\n }\n const setInt = typeof setInterval !== 'undefined' ? setInterval : null;\n if (setInt) this._flushTimer = setInt(() => this.flush(), this.flushIntervalMs);\n\n // Node graceful shutdown\n if (typeof process !== 'undefined' && typeof process.on === 'function') {\n this._onProcessExit = () => this.destroy();\n process.on('beforeExit', this._onProcessExit);\n process.on('SIGINT', this._onProcessExit);\n process.on('SIGTERM', this._onProcessExit);\n }\n }\n\n // Convenience methods for the main logger\n debug(event: string, ctx?: BaseCtx): void {\n this.log('debug', event, ctx);\n }\n\n info(event: string, ctx?: BaseCtx): void {\n this.log('info', event, ctx);\n }\n\n warn(event: string, ctx?: BaseCtx): void {\n this.log('warn', event, ctx);\n }\n\n error(event: string, ctx?: BaseCtx, error?: unknown): void {\n this.log('error', event, ctx, error);\n }\n\n async time<T>(event: string, f: () => Promise<T> | T, c?: BaseCtx): Promise<T> {\n const t0 = typeof performance !== 'undefined' ? performance.now() : Date.now();\n try {\n return await f();\n } finally {\n const dur = Math.round((typeof performance !== 'undefined' ? performance.now() : Date.now()) - t0);\n this.log('info', `${event}.done`, { durationMs: dur, ...(c ?? {}) });\n }\n }\n\n child(component: string, extra?: BaseCtx): LoggerInterface {\n return {\n log: (lvl: Level, event: string, ctx?: BaseCtx, err?: unknown) =>\n this.log(lvl, event, { component, ...(extra ?? {}), ...(ctx ?? {}) }, err),\n debug: (e: string, c?: BaseCtx) => this.log('debug', e, { component, ...(extra ?? {}), ...(c ?? {}) }),\n info: (e: string, c?: BaseCtx) => this.log('info', e, { component, ...(extra ?? {}), ...(c ?? {}) }),\n warn: (e: string, c?: BaseCtx) => this.log('warn', e, { component, ...(extra ?? {}), ...(c ?? {}) }),\n error: (e: string, c?: BaseCtx, err?: unknown) =>\n this.log('error', e, { component, ...(extra ?? {}), ...(c ?? {}) }, err),\n child: (childComponent: string, childExtra?: BaseCtx) =>\n this.child(`${component}.${childComponent}`, { ...(extra ?? {}), ...(childExtra ?? {}) }),\n time: async <T>(event: string, f: () => Promise<T> | T, c?: BaseCtx) => {\n const t0 = typeof performance !== 'undefined' ? performance.now() : Date.now();\n try {\n return await f();\n } finally {\n const dur = Math.round((typeof performance !== 'undefined' ? performance.now() : Date.now()) - t0);\n this.log('info', `${event}.done`, { component, durationMs: dur, ...(extra ?? {}), ...(c ?? {}) });\n }\n },\n };\n }\n\n log(lvl: Level, event: string, ctx?: BaseCtx, error?: unknown) {\n if (levelOrder[lvl] < levelOrder[this.level]) return;\n if (Math.random() > (this.sample[lvl] ?? 1)) return;\n\n // Hoist component/traceId out of ctx (if present) so it goes to the top-level field\n let component: string | undefined;\n let traceId: string | undefined;\n\n // Type guard for context with component\n if (\n ctx &&\n typeof ctx === 'object' &&\n 'component' in ctx &&\n typeof (ctx as Record<string, unknown>).component === 'string'\n ) {\n component = (ctx as Record<string, unknown>).component as string;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { component: _ignored, ...rest } = ctx as Record<string, unknown>;\n ctx = rest as BaseCtx;\n }\n\n // Type guard for context with traceId\n if (\n ctx &&\n typeof ctx === 'object' &&\n 'traceId' in ctx &&\n typeof (ctx as Record<string, unknown>).traceId === 'string'\n ) {\n traceId = (ctx as Record<string, unknown>).traceId as string;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { traceId: _traceId, ...rest } = ctx as Record<string, unknown>;\n ctx = rest as BaseCtx;\n }\n\n const err = error\n ? {\n message: (error as Error)?.message ?? String(error),\n stack: (error as Error)?.stack,\n name: (error as Error)?.name,\n code: (error as { code?: string | number })?.code,\n }\n : undefined;\n\n const ev: LogEvent = {\n ts: Date.now(),\n lvl,\n app: this.app,\n env: this.env,\n ver: this.ver,\n component,\n event,\n ctx: sanitizeCtx({ ...this.defaultCtx, ...(ctx ?? {}) }),\n err,\n sessionId: this.sessionId,\n traceId,\n };\n\n // Queue and flush by size\n this.queue.push(ev);\n if (this.queue.length > this.maxQueue) this.queue.splice(0, this.queue.length - this.maxQueue);\n if (this.queue.length >= this.maxBatch) this.flush();\n }\n\n flush() {\n if (this.queue.length === 0 || !this.transports?.length) return;\n const batch = this.queue.splice(0, this.queue.length);\n for (const t of this.transports) {\n try {\n void t.write(batch);\n } catch {\n /* ignore */\n }\n try {\n void t.flush?.();\n } catch {\n /* ignore */\n }\n }\n }\n\n destroy() {\n if (this._flushTimer != null) {\n clearInterval(this._flushTimer);\n this._flushTimer = null;\n }\n this.flush();\n for (const t of this.transports) {\n try {\n t.flush?.();\n } catch {\n /* ignore */\n }\n try {\n t.destroy?.();\n } catch {\n /* ignore */\n }\n }\n\n if (typeof window !== 'undefined' && this._onBeforeUnload) {\n window.removeEventListener('beforeunload', this._onBeforeUnload);\n this._onBeforeUnload = undefined;\n }\n if (typeof process !== 'undefined' && typeof process.off === 'function' && this._onProcessExit) {\n process.off('beforeExit', this._onProcessExit);\n process.off('SIGINT', this._onProcessExit);\n process.off('SIGTERM', this._onProcessExit);\n this._onProcessExit = undefined;\n }\n }\n\n setDefaultContext(patch: Record<string, unknown>) {\n this.defaultCtx = { ...this.defaultCtx, ...patch };\n }\n\n setLevel(level: Level) {\n this.level = level;\n return this;\n }\n\n setTransports(t: Transport | Transport[]) {\n this.transports = Array.isArray(t) ? t : [t];\n return this;\n }\n}\n\n// --- helpers ---\nfunction sanitizeCtx(ctx: BaseCtx): BaseCtx {\n // Avoid circular refs + huge payloads\n const seen = new WeakSet<object>();\n const cap = (v: unknown): unknown => {\n if (v == null) return v;\n if (typeof v === 'string') return v.length > 4000 ? v.slice(0, 4000) + '…' : v;\n if (typeof v !== 'object') return v;\n if (seen.has(v)) return '[Circular]';\n seen.add(v);\n if (Array.isArray(v)) return v.slice(0, 50).map(cap);\n const out: Record<string, unknown> = {};\n for (const k of Object.keys(v as Record<string, unknown>).slice(0, 100))\n out[k] = cap((v as Record<string, unknown>)[k]);\n return out;\n };\n return cap(ctx) as BaseCtx;\n}\n","import { Logger, type Level, type LoggerInterface } from './logger';\n\nimport type { Transport } from './transport/types';\n\nlet loggerInstance: Logger | null = null;\nlet teardown: (() => void) | null = null;\n\nexport async function initializeLogger(config: {\n app: string;\n env: 'development' | 'test' | 'production';\n ver?: string;\n level?: Level;\n sample?: Partial<Record<Level, number>>;\n defaultCtx?: Record<string, unknown>;\n maxBatch?: number;\n flushIntervalMs?: number;\n transport: Transport | Transport[];\n}): Promise<void> {\n // Clean up previous instance\n if (teardown) {\n teardown();\n }\n\n loggerInstance = new Logger(config);\n\n teardown = () => {\n loggerInstance?.destroy?.();\n loggerInstance = null;\n };\n}\n\nexport function shutdownLogger(): void {\n // Use the same cleanup path we registered in initializeLogger\n teardown?.();\n loggerInstance = null;\n}\n\nexport function setDefaultLogContext(patch: Record<string, unknown>): void {\n if (!loggerInstance) throw new Error('Logger not initialized.');\n loggerInstance.setDefaultContext(patch);\n}\n\nexport function getLogger(component?: string): LoggerInterface {\n if (!loggerInstance) {\n // Return a safe console fallback when logger is not initialized\n const createLogMethod =\n (level: 'debug' | 'info' | 'warn' | 'error') =>\n (event: string, context?: Record<string, unknown>, error?: unknown) => {\n const consoleMethod = (console as unknown as Record<string, (...args: unknown[]) => void>)[level];\n if (consoleMethod) {\n const prefix = component ? `[${component}]` : '';\n consoleMethod(`${prefix} ${event}`, context ?? '', error ?? '');\n }\n };\n\n const fallbackLogger: LoggerInterface = {\n debug: createLogMethod('debug'),\n info: createLogMethod('info'),\n warn: createLogMethod('warn'),\n error: createLogMethod('error'),\n log: (\n level: 'debug' | 'info' | 'warn' | 'error',\n event: string,\n context?: Record<string, unknown>,\n error?: unknown,\n ) => createLogMethod(level)(event, context, error),\n child: (childComponent: string) => getLogger(childComponent),\n time: async <T>(event: string, f: () => Promise<T>, c?: Record<string, unknown>) => {\n const t0 = typeof performance !== 'undefined' ? performance.now() : Date.now();\n try {\n return await f();\n } finally {\n const dur = Math.round((typeof performance !== 'undefined' ? performance.now() : Date.now()) - t0);\n createLogMethod('info')(`${event}.done`, { durationMs: dur, ...(c ?? {}) });\n }\n },\n };\n\n return fallbackLogger;\n }\n return component ? loggerInstance.child(component) : loggerInstance;\n}\n\n// Opt-in global installation\nexport function installGlobalGetLogger(): void {\n if (typeof globalThis !== 'undefined') {\n (globalThis as Record<string, unknown>).getLogger = getLogger;\n }\n}\n","import type { LogEvent } from '../logger';\n\nexport function devConsole(ev: LogEvent) {\n const { lvl, event, component, ctx, err } = ev;\n\n // Use plain text formatting for Sentry compatibility (no CSS formatting)\n const base = `${component ?? 'app'} ${event}`;\n const args: unknown[] = [base];\n if (ctx && Object.keys(ctx).length > 0) args.push(ctx);\n if (err) args.push(err);\n\n if (lvl === 'debug') {\n (console.debug || console.log)(...args);\n } else {\n (console as unknown as Record<string, (...args: unknown[]) => void>)[lvl](...args);\n }\n}\n","import { devConsole } from '../util/devConsole';\n\nimport type { Transport } from './types';\nimport type { LogEvent } from '../logger';\n\nexport class ConsoleTransport implements Transport {\n write(batch: LogEvent[]) {\n for (const ev of batch) devConsole(ev);\n }\n}\n","import type { Transport } from './types';\nimport type { LogEvent } from '../logger';\n\nexport class HttpTransport implements Transport {\n constructor(private endpoint: string) {}\n\n async write(batch: LogEvent[]) {\n const body = JSON.stringify(batch);\n\n // Browser: try sendBeacon\n if (typeof navigator !== 'undefined' && 'sendBeacon' in navigator && body.length < 600_000) {\n try {\n const ok = (navigator as Navigator & { sendBeacon: (url: string, data: BodyInit) => boolean }).sendBeacon(\n this.endpoint,\n new Blob([body], { type: 'application/json' }),\n );\n if (ok) return;\n } catch {\n /* ignore */\n }\n }\n\n // Node or fallback\n await fetch(this.endpoint, {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body,\n }).catch(() => {\n /* drop */\n });\n }\n}\n","import type { Transport } from './types';\nimport type { LogEvent } from '../logger';\n\nexport class StdoutTransport implements Transport {\n write(batch: LogEvent[]) {\n for (const ev of batch) {\n // single-line JSONL (better for log shippers)\n process.stdout.write(JSON.stringify(ev) + '\\n');\n }\n }\n}\n"]}