Python:函数调用和自动日志记录的内部信息



我想写一个类,向我显示当前工作函数的树,这意味着:

假设函数A先调用函数B,然后调用函数C,函数C调用函数D。在时间t=1时,B正在运行,所以我希望stdout为:

Root: function A -> running properly, called B
2-nd: function B -> running properly

在时间t=2时,B已返回到A,因此stdout变为:

Root: function A -> running properly, B returned

在时间t=3时,A调用了C。在时间t=4时,C调用了D。标准输出应该是:

Root: function A -> running properly, B returned, called C
2-nd: function C -> running properly, called D
3-rd: function D -> running properly

在时间t=5时,D返回。在时间t=6时,C返回。标准输出应该是:

Root: function A -> running properly, B returned, C returned

在时间t=7时,函数A返回:

Root: function A -> Done

除了创建一个logger对象并传递它之外,还有更优雅的方法可以实现自动化吗?如果A或B是一个多线程进程呢?

任何建议都将不胜感激。非常感谢。

看看Python中的跟踪模块。您可以使用此模块生成带注释的跟踪报告

Python文档中trace模块的定义:

跟踪模块允许您跟踪程序执行,生成带注释的语句覆盖列表,打印调用方/被调用方关系,并列出程序运行期间执行的函数。它可以在另一个程序中使用,也可以从命令行使用。

最新更新