Fix customization of logger class when using Py2
This commit is contained in:
parent
1e40a8f5bb
commit
6a0e8a7166
|
@ -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)
|
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):
|
class PyEFLLogger(logging.Logger):
|
||||||
|
|
||||||
def __init__(self, name):
|
def __init__(self, name):
|
||||||
cname = name
|
cname = name
|
||||||
if isinstance(cname, unicode): cname = PyUnicode_AsUTF8String(cname)
|
if isinstance(cname, unicode): cname = PyUnicode_AsUTF8String(cname)
|
||||||
self.eina_log_domain = eina_log_domain_register(cname, NULL)
|
self.eina_log_domain = eina_log_domain_register(cname, NULL)
|
||||||
loggers[name] = self
|
loggers[name] = self
|
||||||
logging.Logger.__init__(self, name)
|
logging.Logger.__init__(self, name)
|
||||||
|
if PY_VERSION_HEX < 0x03000000:
|
||||||
def setLevel(self, lvl):
|
self.setLevel = types.MethodType(setLevel, self, type(self))
|
||||||
cname = self.name
|
else:
|
||||||
if isinstance(cname, unicode): cname = PyUnicode_AsUTF8String(cname)
|
self.setLevel = types.MethodType(setLevel, self)
|
||||||
eina_log_domain_level_set(cname, log_levels.index(lvl))
|
|
||||||
logging.Logger.setLevel(self, lvl)
|
|
||||||
|
|
||||||
cdef object add_logger(object name):
|
cdef object add_logger(object name):
|
||||||
logging.setLoggerClass(PyEFLLogger)
|
logging.setLoggerClass(PyEFLLogger)
|
||||||
|
@ -82,9 +87,9 @@ cdef object add_logger(object name):
|
||||||
lvl = log.getEffectiveLevel()
|
lvl = log.getEffectiveLevel()
|
||||||
eina_log_domain_level_set(cname, log_levels.index(lvl))
|
eina_log_domain_level_set(cname, log_levels.index(lvl))
|
||||||
if PY_VERSION_HEX < 0x03000000:
|
if PY_VERSION_HEX < 0x03000000:
|
||||||
log.setLevel = types.MethodType(PyEFLLogger.setLevel, log, PyEFLLogger)
|
log.setLevel = types.MethodType(setLevel, log, type(log))
|
||||||
else:
|
else:
|
||||||
log.setLevel = types.MethodType(PyEFLLogger.setLevel, log)
|
log.setLevel = types.MethodType(setLevel, log)
|
||||||
else:
|
else:
|
||||||
log.propagate = True
|
log.propagate = True
|
||||||
log.setLevel(logging.WARNING)
|
log.setLevel(logging.WARNING)
|
||||||
|
|
Loading…
Reference in New Issue