我正在尝试学习应用程序的工作原理.为此,我将调试命令作为每个函数体的第一行插入,目的是记录函数的名称以及我向日志输出发送消息的行号(在代码中).最后,由于此应用程序包含许多文件,因此我想创建一个日志文件,以便我可以更好地理解应用程序的控制流.
这就是我所知道的:
为了获取函数名称,我可以使用function_name.__name__但我不想使用function_name(这样我就可以Log.info("Message")在所有函数的主体中快速复制和粘贴泛型).我知道这可以在C中使用__func__宏完成,但我不确定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>}.有什么意见吗?
我知道如何使用日志记录并向其添加处理程序以记录到文件,但我不确定是否可以使用单个文件以正确的项目函数调用顺序记录所有日志消息.
我非常感谢任何帮助.
谢谢!