UNPKG

@obsidize/logger

Version:
49 lines (48 loc) 1.52 kB
import { LogEventGuard } from './log-event-guard'; import { LogLevel } from './log-level'; /** * Common logging interface to be used on a per-module basis. * Can be configured to suppress events based on a custom filter, * or disabled entirely. * * Events produced by an instance of this class will be * passed along to the assigned interceptor for further * processing / outlet handling. */ export class Logger extends LogEventGuard { constructor(tag, interceptor) { super(); this.tag = tag; this.interceptor = interceptor; } verbose(message, ...params) { this.emit(LogLevel.VERBOSE, message, params); } trace(message, ...params) { this.emit(LogLevel.TRACE, message, params); } debug(message, ...params) { this.emit(LogLevel.DEBUG, message, params); } log(message, ...params) { this.emit(LogLevel.DEBUG, message, params); } info(message, ...params) { this.emit(LogLevel.INFO, message, params); } warn(message, ...params) { this.emit(LogLevel.WARN, message, params); } error(message, ...params) { this.emit(LogLevel.ERROR, message, params); } fatal(message, ...params) { this.emit(LogLevel.FATAL, message, params); } emit(level, message, params, timestamp) { const ev = this.interceptor.createEvent(level, this.tag, message, params, timestamp); if (this.test(ev)) { this.interceptor.interceptEvent(ev); } } }