mirror of
https://github.com/HeyPuter/puter.git
synced 2025-12-30 09:40:00 -06:00
dev: handle 'console.log' through log service
This commit is contained in:
@@ -282,7 +282,8 @@ class Extension extends AdvancedBase {
|
||||
get console () {
|
||||
const extensionConsole = Object.create(console);
|
||||
extensionConsole.log = (...a) => {
|
||||
console.log(`${display_time(new Date())} \x1B[${this.terminal_color};1m(extension/${this.name})\x1B[0m`, ...a);
|
||||
const realConsole = globalThis.original_console_object ?? console;
|
||||
realConsole.log(`${display_time(new Date())} \x1B[${this.terminal_color};1m(extension/${this.name})\x1B[0m`, ...a);
|
||||
};
|
||||
return extensionConsole;
|
||||
}
|
||||
|
||||
@@ -122,7 +122,7 @@ class LogContext {
|
||||
typeof fields[k].toLogFields === 'function'
|
||||
) fields[k] = fields[k].toLogFields();
|
||||
}
|
||||
if ( Context.get('injected_logger') ) {
|
||||
if ( Context.get('injected_logger', { allow_fallback: true }) ) {
|
||||
Context.get('injected_logger').log(
|
||||
message + (fields ? ('; fields: ' + JSON.stringify(fields)) : ''),
|
||||
);
|
||||
@@ -557,6 +557,31 @@ class LogService extends BaseService {
|
||||
|
||||
this.services.logger = this.create('services-container');
|
||||
globalThis.root_context.set('logger', this.create('root-context'));
|
||||
|
||||
{
|
||||
const util = require('util');
|
||||
const logger = this.create('console');
|
||||
|
||||
if ( ! globalThis.original_console_object ) {
|
||||
globalThis.original_console_object = console;
|
||||
}
|
||||
|
||||
// Keep console prototype
|
||||
const logconsole = Object.create(console);
|
||||
|
||||
// Override simple log functions
|
||||
const logfn = level => (...a) => {
|
||||
logger[level](a.map(arg => {
|
||||
if ( typeof arg === 'string' ) return arg;
|
||||
return util.inspect(arg, undefined, undefined, true);
|
||||
}).join(' '));
|
||||
};
|
||||
logconsole.log = logfn('info');
|
||||
logconsole.warn = logfn('warn');
|
||||
logconsole.error = logfn('error');
|
||||
|
||||
globalThis.console = logconsole;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -685,6 +685,7 @@ class WebServerService extends BaseService {
|
||||
*/
|
||||
// comment above line 497
|
||||
print_puter_logo_() {
|
||||
const realConsole = globalThis.original_console_object;
|
||||
if ( this.global_config.env !== 'dev' ) return;
|
||||
const logos = require('../../fun/logos.js');
|
||||
let last_logo = undefined;
|
||||
@@ -703,10 +704,10 @@ class WebServerService extends BaseService {
|
||||
lines[i] = ' '.repeat(pad_left) + lines[i] + ' '.repeat(pad_right);
|
||||
}
|
||||
const txt = lines.join('\n');
|
||||
console.log('\n\x1B[34;1m' + txt + '\x1B[0m\n');
|
||||
realConsole.log('\n\x1B[34;1m' + txt + '\x1B[0m\n');
|
||||
}
|
||||
if ( config.os.archbtw ) {
|
||||
console.log('\x1B[34;1mPuter is running on Arch btw\x1B[0m');
|
||||
realConsole.log('\x1B[34;1mPuter is running on Arch btw\x1B[0m');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,34 +31,36 @@ class NullDevConsoleService extends BaseService {
|
||||
|
||||
const longestWithTitle = Math.max(longest, ansi_visible_length(title));
|
||||
|
||||
const realConsole = globalThis.original_console_object ?? console;
|
||||
|
||||
({
|
||||
highlighter: () => {
|
||||
console.log(`\x1B[${colors.bginv}m▐\x1B[0m\x1B[${colors.bg}m ${title} \x1B[0m`);
|
||||
realConsole.log(`\x1B[${colors.bginv}m▐\x1B[0m\x1B[${colors.bg}m ${title} \x1B[0m`);
|
||||
for ( const line of lines ) {
|
||||
console.log(`\x1B[${colors.bginv}m▐▌\x1B[0m${line}\x1B[0m`);
|
||||
realConsole.log(`\x1B[${colors.bginv}m▐▌\x1B[0m${line}\x1B[0m`);
|
||||
}
|
||||
},
|
||||
highlighter2: () => {
|
||||
let top = '';
|
||||
for ( let i = title.length + 2; i < longest+3; i++ ) top += `\x1B[${colors.bginv}m▁\x1B[0m`;
|
||||
console.log(`\x1B[${colors.bginv}m▐\x1B[0m\x1B[${colors.bg}m ${title}${top || ' '}\x1B[0m`);
|
||||
realConsole.log(`\x1B[${colors.bginv}m▐\x1B[0m\x1B[${colors.bg}m ${title}${top || ' '}\x1B[0m`);
|
||||
for ( const line of lines ) {
|
||||
const diff = line.length - ansi_visible_length(line);
|
||||
console.log(`\x1B[${colors.bginv}m▐▌\x1B[0m${line.padEnd(longest + diff)}` +
|
||||
realConsole.log(`\x1B[${colors.bginv}m▐▌\x1B[0m${line.padEnd(longest + diff)}` +
|
||||
`\x1B[${colors.bginv}m▐\x1B[0m`);
|
||||
}
|
||||
console.log(` \x1B[${colors.bginv}m${Array(longest + 2).fill('▔').join('')}\x1B[0m`);
|
||||
realConsole.log(` \x1B[${colors.bginv}m${Array(longest + 2).fill('▔').join('')}\x1B[0m`);
|
||||
},
|
||||
stars: () => {
|
||||
const len = longestWithTitle + 1;
|
||||
const horiz = Array(len).fill('*').join('');
|
||||
console.log(`\x1B[${colors.bginv}m**${horiz}**\x1B[0m`);
|
||||
console.log(`\x1B[${colors.bginv}m*\x1B[0m ${(title + ':').padEnd(len)} \x1B[${colors.bginv}m*\x1B[0m`);
|
||||
realConsole.log(`\x1B[${colors.bginv}m**${horiz}**\x1B[0m`);
|
||||
realConsole.log(`\x1B[${colors.bginv}m*\x1B[0m ${(title + ':').padEnd(len)} \x1B[${colors.bginv}m*\x1B[0m`);
|
||||
for ( const line of lines ) {
|
||||
const diff = line.length - ansi_visible_length(line);
|
||||
console.log(`\x1B[${colors.bginv}m*\x1B[0m ${line.padEnd(len + diff)} \x1B[${colors.bginv}m*\x1B[0m`);
|
||||
realConsole.log(`\x1B[${colors.bginv}m*\x1B[0m ${line.padEnd(len + diff)} \x1B[${colors.bginv}m*\x1B[0m`);
|
||||
}
|
||||
console.log(`\x1B[${colors.bginv}m**${horiz}**\x1B[0m`);
|
||||
realConsole.log(`\x1B[${colors.bginv}m**${horiz}**\x1B[0m`);
|
||||
},
|
||||
})[style ?? 'highlighter2']();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user