devex: add log level support for extensions

This commit is contained in:
KernelDeimos
2025-10-16 15:24:25 -04:00
committed by Eric Dubé
parent fd602aabac
commit 6cdf91fbc9

View File

@@ -281,7 +281,7 @@ class Extension extends AdvancedBase {
get console () {
const extensionConsole = Object.create(console);
extensionConsole.log = (...a) => {
const logfn = level => (...a) => {
let svc_log;
try {
@@ -289,10 +289,13 @@ class Extension extends AdvancedBase {
} catch ( _e ) {
// NOOP
}
if ( ! svc_log ) {
const realConsole = globalThis.original_console_object ?? console;
realConsole.log(`${display_time(new Date())} \x1B[${this.terminal_color};1m(extension/${this.name})\x1B[0m`, ...a);
realConsole[(level => {
if ( ['error', 'warn'].includes(level) ) return level;
return 'log';
})(level)](`${display_time(new Date())} \x1B[${this.terminal_color};1m(extension/${this.name})\x1B[0m`, ...a);
return;
}
@@ -302,8 +305,11 @@ class Extension extends AdvancedBase {
if ( typeof arg === 'string' ) return arg;
return util.inspect(arg, undefined, undefined, true);
}).join(' ');
extensionLogger.info(consoleStyle);
extensionLogger[level](consoleStyle);
};
extensionConsole.log = logfn('info');
extensionConsole.error = logfn('error');
extensionConsole.warn = logfn('warn');
return extensionConsole;
}