UNPKG

ember-legacy-class-transform

Version:
48 lines 1.54 kB
export var LogLevel; (function (LogLevel) { LogLevel[LogLevel["Trace"] = 0] = "Trace"; LogLevel[LogLevel["Debug"] = 1] = "Debug"; LogLevel[LogLevel["Warn"] = 2] = "Warn"; LogLevel[LogLevel["Error"] = 3] = "Error"; })(LogLevel || (LogLevel = {})); class NullConsole { log(_message) {} warn(_message) {} error(_message) {} trace() {} } let ALWAYS; export class Logger { constructor({ console, level }) { this.f = ALWAYS; this.force = ALWAYS; this.console = console; this.level = level; } skipped(level) { return level < this.level; } trace(message, { stackTrace = false } = {}) { if (this.skipped(LogLevel.Trace)) return; this.console.log(message); if (stackTrace) this.console.trace(); } debug(message, { stackTrace = false } = {}) { if (this.skipped(LogLevel.Debug)) return; this.console.log(message); if (stackTrace) this.console.trace(); } warn(message, { stackTrace = false } = {}) { if (this.skipped(LogLevel.Warn)) return; this.console.warn(message); if (stackTrace) this.console.trace(); } error(message) { if (this.skipped(LogLevel.Error)) return; this.console.error(message); } } let _console = typeof console === 'undefined' ? new NullConsole() : console; ALWAYS = new Logger({ console: _console, level: LogLevel.Trace }); const LOG_LEVEL = LogLevel.Debug; export default new Logger({ console: _console, level: LOG_LEVEL });