1 回答
TA贡献1836条经验 获得超3个赞
这最终解决了我的问题:
class Message(object):
def __init__(self, fmt, args):
self.fmt = fmt
self.args = args
def __str__(self):
return self.fmt + ''.join(str(arg) for arg in self.args)
class CommonLoggerAdapter(logging.LoggerAdapter):
def __init__(self, logger, extra=None):
super(CommonLoggerAdapter, self).__init__(logger, extra or {})
def log(self, level, msg, *args, **kwargs):
if self.isEnabledFor(level):
msg, kwargs = self.process(msg, kwargs)
self.logger._log(level, Message(msg, args), (), **kwargs)
显然,使用适配器实现而不是记录器实现效果更好,因为 logging.config 在它们之间共享。如果要使用 Logger 实现,则需要在初始化时执行此操作:
def __init__(name):
for handler in logging._handlers.values():
self.addhandler(handler)
这两个选项都有效!希望它也对其他人有所帮助!
添加回答
举报