以下函数报告发生运行时异常时我想从其他函数中调用的“当前”行号(和时间)。
可以理解,返回的行号总是与 gTime() 函数本身中 getframeinfo 的位置相关,即它是静态的。
每当我需要 line.num/time 数据时,我只需要 gTime() 功能,而无需将(长)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()