我可以创建一个命名的子记录器,以便该记录器输出的所有日志都标有它的名称。我可以在我的函数/类/任何东西中专门使用该记录器。
但是,如果该代码调用另一个模块中的函数,该模块仅使用日志记录模块函数(根记录器的代理)使用日志记录,我如何确保这些日志消息通过相同的记录器(或至少是以相同的方式登录)?
例如:
主文件
import logging
import other
def do_stuff(logger):
logger.info("doing stuff")
other.do_more_stuff()
if __name__ == '__main__':
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("stuff")
do_stuff(logger)
其他.py
import logging
def do_more_stuff():
logging.info("doing other stuff")
输出:
$ python main.py
INFO:stuff:doing stuff
INFO:root:doing other stuff
我希望能够使两个日志行都被标记为名称“stuff”,并且我希望能够仅更改 main.py 来执行此操作。
如何在不更改该模块的情况下使 other.py 中的日志记录调用使用不同的记录器?