Skip to content

Match GLib's log message handling

Emmanuele Bassi requested to merge ebassi/handle-log-levels into master

After GLib gained support for structured log messages, it started handling info-level messages differently, by showing them only if the G_MESSAGES_DEBUG environment variable is set to either "all" or to a colon-separated list of log domains that include the log domain used by the message.

The Perl bindings override the old, unstructured log message function, which disables all the logging capabilities inside GLib. Since the Perl bindings currently do not support G_LOG_MESSSAGE_INFO and G_LOG_MESSAGE_DEBUG messages, this means that Perl applications and modules will always print out debugging messages that would normally not be visible; additionally, the info-level messages use a generic "LOG" marker which makes them look like actual warnings, instead of the debugging messages they are.

In order to fix this, and be backward compatible with older versions of GLib, we need to reimplement the logging logic from GLib into our own bindings. This also means adding the ability to emit info-level log messages.

Merge request reports