@stringsync/vexml
Version:
MusicXML to Vexflow
31 lines (30 loc) • 1.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MemoryLogger = void 0;
class MemoryLogger {
logs = new Array();
getLogs() {
return this.logs;
}
debug(message, meta) {
this.logs.push({ level: 'debug', message, meta: { callsite: this.getCallsite(), ...meta } });
}
info(message, meta) {
this.logs.push({ level: 'info', message, meta: { callsite: this.getCallsite(), ...meta } });
}
warn(message, meta) {
this.logs.push({ level: 'warn', message, meta: { callsite: this.getCallsite(), ...meta } });
}
error(message, meta) {
this.logs.push({ level: 'error', message, meta: { callsite: this.getCallsite(), ...meta } });
}
getCallsite() {
const stack = new Error().stack;
if (!stack)
return '';
const stackLines = stack.split('\n');
// Return the third line which is the callsite
return stackLines[3] ? stackLines[3].trim() : '';
}
}
exports.MemoryLogger = MemoryLogger;