[pygtk] g_log_set_handler?

Tim Evans t.evans at aranz.com
Fri Jun 18 05:44:50 WST 2004


Gustavo J. A. M. Carneiro wrote:
> A Qua, 2004-06-16 às 23:32, Tim Newsham escreveu:
> 
>>Hi,  Is there any way to set the log handler in pygtk?  I couldn't
>>find any.  I did notice a previous related thread on
>>"turning tk warnings into exceptions."   I am interested
>>in altering the default warning logging mechanism.  Currently
>>under windows it forces a console window to open up to
>>emit these warnings.  I know that ideally the code would
>>be warning free, but I still get occasional harmless warnings
>>from gtk and glade.
> 
> 
>   I think pygtk should install a log handler to turn all log messages
> into python warnings.  Then, the pygtk programmer may use the standard
> 'warnings' module to do whatever he wishes to such warnings: hide them,
> turn them to exceptions, show in a text/list widget, etc.
> 
>   If you are interested in this, you should open a bug report in
> bugzilla.gnome.org, product pygtk, type enhancement.  A patch will speed
> up the bug progress, but otherwise I will eventually do this, but it may
> take some time.

I think that maybe the Python 'logging' module would be a better choice 
than Python warnings.

    http://docs.python.org/lib/module-logging.html

The different levels of g_log would be translated into the equivalent 
Python logging levels as follows:

   G_LOG_LEVEL_ERROR      logging.CRITICAL
   G_LOG_LEVEL_CRITICAL   logging.ERROR
   G_LOG_LEVEL_WARNING    logging.WARNING
   G_LOG_LEVEL_MESSAGE    25 (between WARNING and INFO)
   G_LOG_LEVEL_INFO       logging.INFO
   G_LOG_LEVEL_DEBUG      logging.DEBUG

The transposition of meanings for "critical" and "error" is unfortunate, 
but I guess we could live with it.  Handling fatal G_LOG_LEVEL_ERROR 
messages may not be useful anyway.

A heirachy of loggers would be created, with something like 'glog' at 
the top, and a child logger for each log domain, i.e.:

    'glog.Gtk', 'glog.GLib', 'glog.Pango', etc.

We would also need to define a few useful gtk-related logging.Handler 
classes, such as TextBufferHandler, ListStoreHandler, etc.  I think that 
all of this should go into a module called 'glog'.  If anyone else likes 
this idea I could try putting together an initial version of such a module.

-- 
Tim Evans
Applied Research Associates NZ
http://www.aranz.com/


More information about the pygtk mailing list