我想编写一个类,它将向我展示当前工作功能的树,这意味着:
假设我有函数 A 先调用函数 B,然后调用函数 C,函数 C 调用函数 D。在时间 t = 1 时,B 正在运行,所以我希望标准输出为:
Root: function A -> running properly, called B
2-nd: function B -> running properly
在时间 t = 2 时,B 已返回到 A,因此标准输出变为:
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
除了创建一个记录器对象并传递它之外,有没有更优雅的方法来自动化它?如果 A 或 B 是多线程进程怎么办?
任何建议都非常感谢。谢谢!