kuuko pushed a commit to branch master. http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=6a0e8a716669e65e7ce910ee5a18f3a1eaf202d8
commit 6a0e8a716669e65e7ce910ee5a18f3a1eaf202d8 Author: Kai Huuhko <[email protected]> Date: Mon Oct 28 16:54:23 2013 +0200 Fix customization of logger class when using Py2 --- efl/utils/logger.pyx | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/efl/utils/logger.pyx b/efl/utils/logger.pyx index 515c566..2866a51 100644 --- a/efl/utils/logger.pyx +++ b/efl/utils/logger.pyx @@ -54,19 +54,24 @@ cdef void py_eina_log_print_cb(const_Eina_Log_Domain *d, eina_log_print_cb_set(py_eina_log_print_cb, NULL) +def setLevel(self, lvl): + cname = self.name + if isinstance(cname, unicode): cname = PyUnicode_AsUTF8String(cname) + eina_log_domain_level_set(cname, log_levels.index(lvl)) + logging.Logger.setLevel(self, lvl) + class PyEFLLogger(logging.Logger): + def __init__(self, name): cname = name if isinstance(cname, unicode): cname = PyUnicode_AsUTF8String(cname) self.eina_log_domain = eina_log_domain_register(cname, NULL) loggers[name] = self logging.Logger.__init__(self, name) - - def setLevel(self, lvl): - cname = self.name - if isinstance(cname, unicode): cname = PyUnicode_AsUTF8String(cname) - eina_log_domain_level_set(cname, log_levels.index(lvl)) - logging.Logger.setLevel(self, lvl) + if PY_VERSION_HEX < 0x03000000: + self.setLevel = types.MethodType(setLevel, self, type(self)) + else: + self.setLevel = types.MethodType(setLevel, self) cdef object add_logger(object name): logging.setLoggerClass(PyEFLLogger) @@ -82,9 +87,9 @@ cdef object add_logger(object name): lvl = log.getEffectiveLevel() eina_log_domain_level_set(cname, log_levels.index(lvl)) if PY_VERSION_HEX < 0x03000000: - log.setLevel = types.MethodType(PyEFLLogger.setLevel, log, PyEFLLogger) + log.setLevel = types.MethodType(setLevel, log, type(log)) else: - log.setLevel = types.MethodType(PyEFLLogger.setLevel, log) + log.setLevel = types.MethodType(setLevel, log) else: log.propagate = True log.setLevel(logging.WARNING) --
