2024-09-26 18:20:04 发布
网友
是否有一个共同的模式可以遵循正确的子类logging.Logger
logging.Logger
import logging class MyLogger(logging.Logger): __init__(self, name): super().__init__(name=name)
属性似乎不起作用,因为以这种方式创建的MyLogger没有对其父级的引用。虽然我可以手动设置它的父级,但恐怕loggging.Logger的其他协议也不满足MyLogger
MyLogger
loggging.Logger
如何创建记录器实例?规范的方法是永远不要直接实例化记录器,而是使用管理器。日志库有setLoggerClass来告诉管理器在创建记录器时要使用哪个类。经理还设置了家长:
setLoggerClass
import logging class MyLogger(logging.Logger): def __init__(self, name): super().__init__(name=name) logging.setLoggerClass(MyLogger) logger = logging.getLogger('some_logger') child_logger = logging.getLogger('some_logger.child') print(type(logger)) # MyLogger print(logger.parent) # shows the root logger print(child_logger.parent) # shows 'some_logger'
如何创建记录器实例?规范的方法是永远不要直接实例化记录器,而是使用管理器。日志库有
setLoggerClass
来告诉管理器在创建记录器时要使用哪个类。经理还设置了家长:相关问题 更多 >
编程相关推荐