我可以创建一个名为子记录,使所有输出的日志,通过记录器都标有它的名字。我可以只在我的函数/类/任何情况下使用该记录器。但是,如果该代码调用另一个模块中的函数,该模块仅使用日志记录模块函数(代理向根记录器)进行日志记录,那么如何确保这些日志消息通过同一个记录器(或者至少以同样的方式登录)?如何使日志模块功能使用不同的日志记录器?
例如:
main.py
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)
other.py
import logging
def do_more_stuff():
logging.info("doing other stuff")
输出:
$ python main.py
INFO:stuff:doing stuff
INFO:root:doing other stuff
我希望能够引起两个日志行用名字'东西'来标记',我希望能够做到这一点只改变main.py.
我怎样才能引起other.py记录呼叫使用不同的记录,而不改变该模块?
似乎自恋接受我自己的答案,但我这样做,因为这是我使用的解决方案。仍然打开更好的解决方案。 – SpoonMeiser