Advertisement
rubiin

Untitled

May 21st, 2025
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # Manually map log levels to readable names
  2. LOG_LEVEL_NAMES = {
  3.     GLib.LogLevelFlags.LEVEL_ERROR: "ERROR",
  4.     GLib.LogLevelFlags.LEVEL_CRITICAL: "CRITICAL",
  5.     GLib.LogLevelFlags.LEVEL_WARNING: "WARNING",
  6.     GLib.LogLevelFlags.LEVEL_MESSAGE: "MESSAGE",
  7.     GLib.LogLevelFlags.LEVEL_INFO: "INFO",
  8.     GLib.LogLevelFlags.LEVEL_DEBUG: "DEBUG",
  9. }
  10.  
  11.  
  12. def log_handler(domain, level, message):
  13.     level_name = LOG_LEVEL_NAMES.get(
  14.         GLib.LogLevelFlags(
  15.             level & ~GLib.LogLevelFlags.FLAG_FATAL & ~GLib.LogLevelFlags.FLAG_RECURSION
  16.         ),
  17.         f"UNKNOWN({level})",
  18.     )
  19.     print(f"\n[{domain or 'Default'}] {level_name}: {message}")
  20.     traceback.print_stack()
  21.  
  22.  
  23. # Set log levels
  24. log_levels = (
  25.     GLib.LogLevelFlags.LEVEL_ERROR
  26.     | GLib.LogLevelFlags.LEVEL_CRITICAL
  27.     | GLib.LogLevelFlags.LEVEL_WARNING
  28.     | GLib.LogLevelFlags.LEVEL_MESSAGE
  29.     | GLib.LogLevelFlags.LEVEL_INFO
  30.     | GLib.LogLevelFlags.LEVEL_DEBUG
  31. )
  32.  
  33. # Common GTK/GLib log domains
  34. domains = [None, "Gtk", "GLib", "GLib-GObject", "Gdk", "Pango"]
  35.  
  36. for domain in domains:
  37.     GLib.log_set_handler(domain, log_levels, log_handler)
  38.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement