UNPKG

@papabravocorp/pluggable-logger

Version:

A pluggable logger for Node.js that writes structured logs to local file systems, Azure ADLS, or custom storage backends.

26 lines (23 loc) 854 B
// Logger Class import { StorageProvider, LogEntry } from './storage'; export class Logger { constructor(private provider: StorageProvider) {} private async log(level: LogEntry['level'], message: string, meta?: any) { const entry: LogEntry = { timestamp: new Date().toISOString(), level, message, meta, }; try { await this.provider.write(entry); } catch (err) { console.error('[Logger][WRITE FAILED]', err); console[level.toLowerCase() as 'info' | 'warn' | 'error' | 'debug'](entry); } } info(msg: string, meta?: any) { return this.log('INFO', msg, meta); } warn(msg: string, meta?: any) { return this.log('WARN', msg, meta); } error(msg: string, meta?: any) { return this.log('ERROR', msg, meta); } debug(msg: string, meta?: any) { return this.log('DEBUG', msg, meta); } }