UNPKG

@stringsync/vexml

Version:

MusicXML to Vexflow

27 lines (26 loc) 907 B
export 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() : ''; } }