main: Replace custom log function with console

console.log() is implemented with structured logging, and as we
set an appropriate log domain, it's identical to the custom function
bar the custom fields with extension data.

Few people know about those custom fields, and adding them comes
at a cost, as we end up producing and parsing a stacktrace on
every log() call.

It therefore seems appropriate to drop the custom function, and
turn the global log() symbol into a simple convenience alias for
console.log().

If it turns out that people do miss the custom fields, we can add
an alternative to ExtensionUtils.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2830>
This commit is contained in:
Florian Müllner 2022-08-01 11:26:59 +02:00 committed by Marge Bot
parent f07bf7b1b6
commit d52b1576ac

View File

@ -147,27 +147,9 @@ function _sessionUpdated() {
}
}
/**
* @param {any...} args a list of values to log
*/
function _loggingFunc(...args) {
let fields = { 'MESSAGE': args.join(', ') };
let domain = 'GNOME Shell';
// If the caller is an extension, add it as metadata
let extension = imports.misc.extensionUtils.getCurrentExtension();
if (extension != null) {
domain = extension.metadata.name;
fields['GNOME_SHELL_EXTENSION_UUID'] = extension.uuid;
fields['GNOME_SHELL_EXTENSION_NAME'] = extension.metadata.name;
}
GLib.log_structured(domain, GLib.LogLevelFlags.LEVEL_MESSAGE, fields);
}
/** @returns {void} */
async function start() {
globalThis.log = _loggingFunc;
globalThis.log = console.log;
// Chain up async errors reported from C
global.connect('notify-error', (global, msg, detail) => {