我创建了一些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.py
import logging
logger = logging.getLogger(__name__)
class A(object):
def __init__(self):
logger.debug("Instance of A")
b.py
import logging
logger = logging.getLogger(__name__)
class B(object):
def __init__(self):
logger.debug("Instance of B")
ab.py
import a
import b
import logging
logger = 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.py
import sys
import ab
import logging
import logging.handlers
logger = 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日志记录手册时出了错吗?
jeck猫
相关分类