Use Inspect to Get the Call Route

What a powerful tool!

Posted by Wang Zhihao on 2017-02-16

最近有一些关于记录和处理日志的需求,其中有一项是「记录所归属的APP接口」。

issue.png

从外部传新的参数肯定是非常傻的办法,于是我去查了一下 Python 相关的机制,果然发现了新大陆。

inspect」就可以解决这个问题。

>>> import inspect
>>>
>>> def f1():
... f2()
...
>>> def f2():
... print 'caller name:', inspect.stack()[1][3]
...
>>> f1()
caller name: f1
>>>

然后通过下图的代码就可以得到需要的「call_route」并记录到日志里面,方便之后查错。

code.png

Reference