我正在尝试了解应用程序的工作原理。为此,我将调试命令作为每个函数主体的第一行插入,目的是记录函数的名称以及我向日志输出发送消息的行号(在代码中)。最后,由于此应用程序包含许多文件,因此我想创建一个日志文件,以便更好地了解应用程序的控制流程。
这是我所知道的:
对于获取函数名称,我可以使用
function_name.__name__
但我不想使用 function_name(这样我可以快速复制并粘贴一个泛型Log.info("Message")
到所有函数的主体中)。我知道这可以在 C 中使用__func__
宏来完成,但我不确定 python。为了获取文件名和行号,我已经看到(并且我相信)我的应用程序正在使用 Python
locals()
函数,但使用的语法我并不完全了解,例如:options = "LOG.debug('%(flag)s : %(flag_get)s' % locals())
我尝试使用 likeLOG.info("My message %s" % locals())
生成类似{'self': <__main__.Class_name object at 0x22f8cd0>}
. 请对此有任何意见吗?我知道如何使用日志记录并向其添加处理程序以记录到文件,但我不确定是否可以使用单个文件以项目中函数调用的正确顺序记录所有日志消息。
我将不胜感激任何帮助。
谢谢!