ember-legacy-class-transform
Version:
The default blueprint for ember-cli addons.
48 lines • 1.54 kB
JavaScript
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 });