1

我想在我的 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 中正确设置我的日志级别?

4

1 回答 1

3

我发现这目前是不可能的,并且在gobject-introspectionor中存在一个已知错误glib,因为g_log_set_handler它是不可绑定的。

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

于 2013-09-23T09:27:43.257 回答