我有一个看起来像这样的Python项目:
my_project
|- my_dir
| |- part_1.py
| |- part_2.py
| |- ...
|- main.py
每个文件(main.py
和part_1.py
,part_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
中进行的日志级别更改不会传播到其他记录器。处理这种情况的最佳方法是什么?