以下函數報告當發生運行時異常時,我想從其他函數內調用的「當前」行號(和時間)。Python - 添加動態調試記錄器樣式行號和時間函數
可以理解的是,返回的行號總是與gTime()函數本身中getframeinfo的位置有關,即它是靜態的。
我只需要gTime()函數,只要我需要line.num/time數據而不需要直接將(長)gTime代碼添加到主代碼體所需的每個位置。我想某種命令序列別名是我真正想要代替我的gTime()函數內的代碼 - 但找不到解決我的問題的任何解決方案。
標準的「記錄器」模塊在我的多線程應用程序中不能可靠工作,所以我正在使用手動解決方案。
from inspect import currentframe, getframeinfo
from datetime import datetime
def gTime():
position = "%s [%s] - " % (str(datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f").rstrip('0')),getframeinfo(currentframe()).lineno)
return position
print gTime()
爲什麼你不喜歡標準的python'logging'模塊? –
就像我說的那樣:「標準'記錄器'模塊在我的多線程應用程序中不能可靠工作,所以我正在使用手動解決方案。」 - 我受這個bug http://bugs.python.org/issue11444的困擾,無法讓我們的庫更新,因爲內部原因 – evillen
Concurent日誌處理程序也不會幫助嗎? http://pypi.python.org/pypi/ConcurrentLogHandler/0.8.3 –