函数/方法调用参数和返回值的分层跟踪
function_trace的Python项目详细描述
用法
使用上下文管理器跟踪代码块。它 接受要跟踪的函数列表或自定义 追踪对象。当一个类被跟踪时,它包括所有的方法 在该类中定义,但不是继承的方法。当一个模块 traced,它包含该模块中的所有函数,但不 包括在该模块中定义的任何类方法(必须指定 单独上课)。
默认情况下,跟踪输出被打印到stdout。您可以修改 此行为通过用函数替换函数trace.tracer 你喜欢跟踪什么就跟踪什么。示踪函数 应该有签名 (f,*args,**kwargs) ,这是 要跟踪的函数,以及要用其调用函数的参数。它 应该在某个时候用参数调用函数。注意它是 最好捕获f抛出的任何异常,记录它们并重新引发 例外。
选项
tracer 允许指定自定义跟踪对象。最简单的 创建它的方法是扩展tracer类并重写 trace_in 和 trace_out 方法。有客户追踪你 可以以任何格式编写跟踪,如html、json, XML等,或通过网络发送。共同的选择 内置跟踪器类是:
< Buff行情>- include_hidden 如果设置为true,还跟踪 名称以 \/tt>开头。注意,函数将 从来没有被跟踪过,现在任何函数的跟踪都是从 与 一起被禁用。
- 深度 一个dict,其中键是函数/方法,而 值是表示所需深度的整数 跟踪那个函数/方法。例如,深度为0表示"do 根本不跟踪此函数",即使它调用 正在追踪。深度为1将跟踪此函数,但跳过 所有的追踪直到它返回。深度为2将跟踪另一个 更深层次。注意,深度表示轨迹的深度 输出,而不是python调用堆栈。