当从python使用GLib时,g_log_set_handler的python等价物是什么

时间:2013-09-20 13:49:38

标签: python glib pygobject gobject gobject-introspection

我想在python glib项目中设置日志级别。因此,当我通过g_log_set_handler()从python使用GLib时,我正在寻找gi.repository等价物。

但是预期的GLib.log_set_handler函数似乎缺失了。这是我的python shell的示例输出:

~$ python
Python 2.7.3 (default, Apr 10 2013, 06:20:15) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from gi.repository import GLib 
>>> GLib.log_set_fatal_mask
<function log_set_fatal_mask at 0x2a7b668> 
>>> GLib.log_set_handler
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/gi/module.py", line 316, in __getattr__
    attr = super(DynamicGLibModule, self).__getattr__(name)
  File "/usr/lib/python2.7/dist-packages/gi/module.py", line 243, in __getattr__
     return getattr(self._introspection_module, name)
  File "/usr/lib/python2.7/dist-packages/gi/module.py", line 105, in __getattr__
    self.__name__, name))
  AttributeError: 'gi.repository.GLib' object has no attribute 'log_set_handler'
>>> 

可以看出,找到了内省存储库中的GLib,并且存在log_set_fatal_mask函数(相当于g_log_set_fatal_mask)。但是找不到log_set_handler

为什么这样,我怎样才能在python中正确设置我的loglevel?

1 个答案:

答案 0 :(得分:3)

我发现这是目前无法实现的,gobject-introspectionglib中存在已知错误,因为g_log_set_handler不可绑定。

请参阅: https://bugzilla.gnome.org/show_bug.cgi?id=670507