mirror of
https://github.com/microsoft/qlib.git
synced 2026-07-16 01:06:56 +08:00
10
qlib/log.py
10
qlib/log.py
@@ -15,9 +15,10 @@ from .config import C
|
|||||||
class MetaLogger(type):
|
class MetaLogger(type):
|
||||||
def __new__(cls, name, bases, dict):
|
def __new__(cls, name, bases, dict):
|
||||||
wrapper_dict = logging.Logger.__dict__.copy()
|
wrapper_dict = logging.Logger.__dict__.copy()
|
||||||
wrapper_dict.update(dict)
|
for key in wrapper_dict:
|
||||||
wrapper_dict["__doc__"] = logging.Logger.__doc__
|
if key not in dict and key != "__reduce__":
|
||||||
return type.__new__(cls, name, bases, wrapper_dict)
|
dict[key] = wrapper_dict[key]
|
||||||
|
return type.__new__(cls, name, bases, dict)
|
||||||
|
|
||||||
|
|
||||||
class QlibLogger(metaclass=MetaLogger):
|
class QlibLogger(metaclass=MetaLogger):
|
||||||
@@ -39,6 +40,9 @@ class QlibLogger(metaclass=MetaLogger):
|
|||||||
self.level = level
|
self.level = level
|
||||||
|
|
||||||
def __getattr__(self, name):
|
def __getattr__(self, name):
|
||||||
|
# During unpickling, python will call __getattr__. Use this line to avoid maximum recursion error.
|
||||||
|
if name in {"__setstate__"}:
|
||||||
|
raise AttributeError
|
||||||
return self.logger.__getattribute__(name)
|
return self.logger.__getattribute__(name)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user