函数/方法调用参数和返回值的分层跟踪

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调用堆栈。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java错误:无法解析方法   如何用相同的父标记和子标记在Java中解析XML?   日期使用Java中的时区偏移将本地时间转换为UTC   java如何在多进程、多线程环境中读取文件   WebView中的java弹出式对话框不在当前显示范围内,但在chrome浏览器中运行良好   只有2个参数的java递归二进制搜索方法   无法在java中调用函数   java JavaMail在Tomcat服务器上运行时停止工作   反射通过java程序生成、编译和运行java类   java Android:如何使ListView即使在应用程序关闭后仍保持禁用状态   在JAVA中识别匿名类实例   java渲染一个由三角形组成的立方体,在旋转时会产生奇怪的角度   函数式编程如何基于比较连续的列表元素将Java流减少为布尔值   java如何替换列表中的多个项目?   java Android如何获取随机sqlite数据?   java我已经将useSSL设置为false,但仍然收到警告   java使用动态变量生成jlabel   apachespark:java。lang.NoClassDefFoundError v2TableWithV1回退