Python日志记录:在`main.py`中设置级别并继承给子记录器

时间:2018-08-06 14:59:02

标签: python python-3.x logging

我有一个看起来像这样的Python项目:

my_project
  |- my_dir
  | |- part_1.py
  | |- part_2.py
  | |- ...
  |- main.py

每个文件(main.pypart_1.pypart_2.py,...)应能够写入相同的日志文件,并具有以下两个要求:

文件名应出现在日志消息中:日志文件中的一行应类似于

ERROR - my_dir.part_1 - Something went wrong in part_1.py

所有记录器的日志级别应通过main.py以编程方式设置:

# main.py
from my_dir import part_1, part_2, ...
...
logger.setLevel('DEBUG')
result_1 = part_1.my_function()  # Logger in part_1.py should be set to DEBUG level

logger.setLevel('WARNING')
result_2 = part_2.my_other_function()  # Logger in part_2.py should be set to WARNING level

我通过以{p>开头my_dir中的每个文件来满足第一个要求

import logging
logger = logging.getLogger(__name__)

如果我使用配置文件并执行logging.config.fileConfig('config.ini'),则可以为所有记录器设置相同的级别。但是在main.py中进行的日志级别更改不会传播到其他记录器。处理这种情况的最佳方法是什么?

0 个答案:

没有答案