根据文档和大量的SO答案等,“您需要做的就是”在多个模块中进行日志记录,将记录器设置在主文件中,然后使用logger = logging.getLogger(__name__)
。
但事实并非如此。如果这样做,日志记录级别将不会被结转,因此您需要在每个文件logger.setLevel(...)
中添加一行。简单的例子:
test.py
import logging
from test2 import bla
logging.basicConfig()
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
def main():
logger.info('main info')
bla()
main()
test2.py
import logging
logger = logging.getLogger(__name__)
def bla():
logger.info('info')
logger.debug('debug')
如果我运行test.py
,则不会打印test2.py
中的任何内容。
在我缺少的初始设置中是否还有其他事情要做?
答案 0 :(得分:1)
没有打印任何内容的原因是您没有设置根记录器的级别,因此它默认为WARNING
。如果您使用logging.basicConfig(level=logging.DEBUG)
替换,那么您应该从INFO
收到DEBUG
和test2.py
条消息。