38 lines
890 B
JavaScript
38 lines
890 B
JavaScript
import {monitor} from "./frameloop";
|
|
|
|
export class Logger {
|
|
static enabled = true //import.meta.env.MODE !== 'production';
|
|
|
|
static log(...args) {
|
|
this._write('log', '[LOG]', args);
|
|
}
|
|
|
|
static warn(...args) {
|
|
this._write('warn', '[WARN]', args)
|
|
}
|
|
|
|
static info(...args) {
|
|
this._write('info', '[INFO]', args);
|
|
}
|
|
|
|
static error(...args) {
|
|
this._write('error', '[ERROR]', args);
|
|
}
|
|
|
|
static _write(consoleMethod, prefix, args) {
|
|
if(!this.enabled) return;
|
|
|
|
const date = new Date();
|
|
const timestamp = date.toLocaleTimeString('de-DE');
|
|
|
|
const msg = `${prefix} [${timestamp}] ${args.map(a => typeof a === 'object' ? JSON.stringify(a) : a).join(' ')}`;
|
|
|
|
if(typeof console[consoleMethod] === 'function') {
|
|
console[consoleMethod](msg);
|
|
}
|
|
|
|
monitor?.log(msg)
|
|
|
|
}
|
|
}
|