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