Stabilize TTS voice reload and reconnect logging

This commit is contained in:
2026-05-19 17:08:48 +02:00
parent 256cc2c7a7
commit 7c5d194376
6 changed files with 148 additions and 27 deletions
+85
View File
@@ -0,0 +1,85 @@
(function () {
const originalConsole = {
debug: console.debug.bind(console),
log: console.log.bind(console),
info: console.info.bind(console),
warn: console.warn.bind(console),
error: console.error.bind(console)
};
const levels = {
silent: 0,
error: 1,
warn: 2,
info: 3,
debug: 4
};
function readLevel() {
const params = new URLSearchParams(window.location.search);
const queryLevel = params.get('log') || params.get('debug');
if (queryLevel === '1' || queryLevel === 'true') return 'debug';
if (queryLevel && levels[queryLevel]) return queryLevel;
const savedLevel = localStorage.getItem('ai-if-log-level');
if (savedLevel && Object.prototype.hasOwnProperty.call(levels, savedLevel)) {
return savedLevel;
}
return 'warn';
}
const logger = {
level: readLevel(),
levels,
originalConsole,
setLevel(level) {
if (!Object.prototype.hasOwnProperty.call(levels, level)) {
originalConsole.warn(`Unknown log level "${level}". Use silent, error, warn, info, or debug.`);
return;
}
this.level = level;
localStorage.setItem('ai-if-log-level', level);
originalConsole.info(`AI IF log level set to ${level}`);
},
shouldPrint(level) {
return levels[this.level] >= levels[level];
},
write(level, args) {
if (!this.shouldPrint(level)) return;
const writer = originalConsole[level] || originalConsole.log;
writer(...args);
},
debug(...args) {
this.write('debug', args);
},
log(...args) {
this.write('debug', args);
},
info(...args) {
this.write('info', args);
},
warn(...args) {
this.write('warn', args);
},
error(...args) {
this.write('error', args);
}
};
console.debug = (...args) => logger.debug(...args);
console.log = (...args) => logger.log(...args);
console.info = (...args) => logger.info(...args);
console.warn = (...args) => logger.warn(...args);
console.error = (...args) => logger.error(...args);
window.AppLogger = logger;
})();