我想寫一個類,會告訴我的當前工作職能的樹,這意味着:的Python:函數調用的內部信息和自動記錄
比方說,我有先函數的函數的調用函數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是多線程進程?
任何建議,非常感謝。謝謝!
你看過'inspect'模塊嗎?您可以從那裏獲取堆棧和跟蹤。 –
我以前沒見過。當我讀到它時,它可能是可用的。但我想要一種乾淨的日誌記錄方式。如果我使用檢查,似乎必須調用一組函數才能在每個函數調用之前獲取信息。這將與記錄器對象相同,除了這是內置的和很棒的。 – Mai