0%

在python中获取调用该函数者的行号和函数名

最近给函数打log时,想指出加入Log的地方,包括时间、文件名、函数名、行号,这样以后找起来会比较容易。通过设这logging的fomatter可以实现,但每次都做太费劲了,于是找了个得到这些信息的方法,也是使用了logging里面的做法,通过异常得到执行信息。

1
2
3
4
5
6
7
8
9
10
# -*- coding: utf-8 -*- 
import sys
import time
def findcaller():
try:
raise Exception
except:
f = sys.exc_info()[2].tb_frame.f_back
return '%s, %s, %s, %s, ' % (str(time.time()), f.f_code.co_filename, f.f_code.co_name, str(f.f_lineno))
print findcaller()

操作说明:(居然还有这种操作?)

通过异常然后通过向上查找的方式,找到调用的信息,得到执行信息。

参考&引用

http://blog.sina.com.cn/s/blog_6200c1440100xvrp.html
http://www.cnblogs.com/njucslzh/archive/2012/09/17/2688932.html