您正在调用configure_logging
两次(也许使用的__init__
方法Boy
):getLogger
将返回相同的对象,但addHandler
不检查是否已将类似的处理程序添加到记录器。
尝试跟踪对该方法的调用并消除其中之一。或在方法中设置一个logging_initialized
初始化为的标志,如果is为,则更改为不执行任何操作,并在初始化记录器后将其设置为。False``__init__``Boy``configure_logging``logging_initialized``True``True
如果程序创建了多个Boy
实例,则必须使用configure_logging
添加处理程序的全局函数来更改处理方式,并且该Boy.configure_logging
方法仅初始化self.logger
属性。
logger = logging.getLogger('my_logger')
if not logger.handlers:
# create the handlers and call logger.addHandler(logging_handler)