1
0
mirror of https://github.com/microsoft/qlib.git synced 2026-07-04 03:21:00 +08:00

Fix logger pickling error

This commit is contained in:
Jactus
2021-04-29 16:54:51 +08:00
parent 5a7eecabee
commit f58c61a2e0

View File

@@ -17,6 +17,7 @@ class MetaLogger(type):
wrapper_dict = logging.Logger.__dict__.copy()
wrapper_dict.update(dict)
wrapper_dict["__doc__"] = logging.Logger.__doc__
del wrapper_dict["__reduce__"] # make Logger object can be pickled
return type.__new__(cls, name, bases, wrapper_dict)
@@ -29,6 +30,15 @@ class QlibLogger(metaclass=MetaLogger):
self.module_name = module_name
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
def logger(self):
logger = logging.getLogger(self.module_name)