mirror of
https://github.com/microsoft/qlib.git
synced 2026-07-15 08:46:56 +08:00
Fix logger pickling error
This commit is contained in:
10
qlib/log.py
10
qlib/log.py
@@ -17,6 +17,7 @@ class MetaLogger(type):
|
|||||||
wrapper_dict = logging.Logger.__dict__.copy()
|
wrapper_dict = logging.Logger.__dict__.copy()
|
||||||
wrapper_dict.update(dict)
|
wrapper_dict.update(dict)
|
||||||
wrapper_dict["__doc__"] = logging.Logger.__doc__
|
wrapper_dict["__doc__"] = logging.Logger.__doc__
|
||||||
|
del wrapper_dict["__reduce__"] # make Logger object can be pickled
|
||||||
return type.__new__(cls, name, bases, wrapper_dict)
|
return type.__new__(cls, name, bases, wrapper_dict)
|
||||||
|
|
||||||
|
|
||||||
@@ -29,6 +30,15 @@ class QlibLogger(metaclass=MetaLogger):
|
|||||||
self.module_name = module_name
|
self.module_name = module_name
|
||||||
self.level = 0
|
self.level = 0
|
||||||
|
|
||||||
|
def __getstate__(self):
|
||||||
|
return vars(self)
|
||||||
|
|
||||||
|
def __setstate__(self, state):
|
||||||
|
vars(self).update(state)
|
||||||
|
|
||||||
|
def __reduce__(self):
|
||||||
|
return (QlibLogger, (self.module_name,))
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def logger(self):
|
def logger(self):
|
||||||
logger = logging.getLogger(self.module_name)
|
logger = logging.getLogger(self.module_name)
|
||||||
|
|||||||
Reference in New Issue
Block a user