@stringsync/vexml
Version:
MusicXML to Vexflow
35 lines (34 loc) • 1.01 kB
JavaScript
export class ConsoleLogger {
levels;
constructor(levels = ['debug', 'info', 'warn', 'error']) {
this.levels = levels;
}
debug(message, meta) {
if (this.levels.includes('debug')) {
console.debug(this.toCompleteMessage(message, meta));
}
}
info(message, meta) {
if (this.levels.includes('info')) {
console.log(this.toCompleteMessage(message, meta));
}
}
warn(message, meta) {
if (this.levels.includes('warn')) {
console.warn(this.toCompleteMessage(message, meta));
}
}
error(message, meta) {
if (this.levels.includes('error')) {
console.error(this.toCompleteMessage(message, meta));
}
}
toCompleteMessage(message, meta) {
if (meta) {
return `[vexml] ${message} ${Object.entries(meta)
.map(([key, value]) => `${key}=${value}`)
.join(' ')}`;
}
return `[vexml] ${message}`;
}
}