console.ts
1 import { BaseLogger } from './base'; 2 import type { Level, LoggerFactory, Logger } from './types'; 3 import { shouldLog } from './local-storage-filter'; 4 5 export class ConsoleLoggerFactory implements LoggerFactory { 6 loggerFor(name: string): Logger { 7 return new ConsoleLogger(name); 8 } 9 } 10 11 export class ConsoleLogger extends BaseLogger { 12 protected log(method: Level, ...args: unknown[]): string { 13 if (!shouldLog(this.name, method)) { 14 return ''; 15 } 16 17 const log = console[method]; 18 const prefix = `[${this.name}]`; 19 const [firstArg, ...rest] = args; 20 21 if (typeof firstArg === 'string') { 22 log(`${prefix} ${firstArg}`, ...rest); 23 } else { 24 log(prefix, ...args); 25 } 26 27 return ''; 28 } 29 }