为了账号安全,请及时绑定邮箱和手机立即绑定

使用多个模块进行python日志记录不起作用

使用多个模块进行python日志记录不起作用

撒科打诨 2021-03-29 10:17:38
我创建了一些Python文件,使我的功能保持分离,以简化工作/修复。所有文件都在一个目录中。该结构可能会分解为以下内容:a.py(具有基本知识的A类)b.py(具有基本知识的B类)modA.py(创建派生自A和B的类C)modB.py(创建派生自A和B的类D)...main_a.py(使用C类)main_b.py(使用类D)每个模块都使用来自python的日志记录内容。这就是为什么-仅写入根记录器消息。而且我看不到我的错误。这是一个最小的示例。a.pyimport logginglogger = logging.getLogger(__name__)class A(object):    def __init__(self):        logger.debug("Instance of A")b.pyimport logginglogger = logging.getLogger(__name__)class B(object):    def __init__(self):        logger.debug("Instance of B")ab.pyimport aimport bimport logginglogger = logging.getLogger(__name__)class AB(a.A, b.B):    def __init__(self):        logger.debug("Instance of AB")        a.A.__init__(self)        b.B.__init__(self)main_one.pyimport sysimport abimport loggingimport logging.handlerslogger = logging.getLogger(__name__)logger.setLevel(logging.DEBUG)handler = logging.StreamHandler(stream=sys.stderr)handler.setLevel(logging.DEBUG)handler.setFormatter(logging.Formatter('%(name)s: %(message)s'))logger.addHandler(handler)logger.warning("The trouble starts")ab = ab.AB()我还尝试使用类似的self.logger = logging.getLogger(type(self).__name__)方法在每个类的基础上进行日志记录,但是结果是相同的。因此,你们其中一位可能会指出我在阅读python日志记录手册时出了错吗?
查看完整描述

2 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

所有模块都使用相同的记录器名称。__name__是模块名称;ababmain_one...

logger = logging.getLogger('daniel_lib')


查看完整回答
反对 回复 2021-04-06
  • 2 回答
  • 0 关注
  • 199 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信