调试和分析用于记录调用方名称、args+值、执行时间等的函数和类的decorator。消除了大量样板代码。
log_calls的Python项目详细描述
日志调用是一个python 3.3+decorator,可以打印很多有用的信息 关于对修饰函数、方法和属性的调用。装潢师可以 写入stdout,另一个流或文件,或写入记录器。记录通话 提供编写自己的调试消息和轻松“转储”的方法。 变量和表达式与其值配对。它可以装饰个人 函数、方法和属性;但它也可以通过编程方式修饰 整个类和类层次结构的可调用成员,甚至整个模块的可调用成员, 只需要一行代码-这可以大大加快学习新的代码库。
简而言之,日志调用可以避免您编写、重写、复制、粘贴和 调整了很多特别的、仅用于调试的样板代码,它可以让your 没有杂乱的代码基。
对于每个对修饰函数或方法的调用,日志调用可以显示:
- 呼叫方(实际上,完整的呼叫链返回到另一个日志调用 呼叫者,因此显示的链中没有间隙)
- 传递给函数或方法的参数,以及使用的任何默认值
- 使用缩进嵌套调用
- 呼叫的号码(无论是1st呼叫, 第2个nd,第103个rd,…)
- 返回值
- 执行所需的时间
- 还有更多!
这些和其他功能是可选的和可配置的设置,可以是 通过关键字参数以及en为每个修饰的可调用函数指定 对于一组共享相同设置的可调用函数,masse。你可以检查一下 并使用与 关键字,或者使用一个类似dict的接口,该接口的关键字是关键字。
日志调用还可以收集分析数据和统计信息,在运行时可以访问, 例如:
该包包含另外两个装饰程序:
- 记录历史,一个精简版的日志调用, 只收集通话记录和统计信息,不输出任何消息;
- used_unused_keywords允许函数或方法在每次调用时轻松确定, 它的哪些关键字参数实际上是由调用方提供的, 它收到了它们的默认值。
注意:这个包需要cpython实现,因为它做出了假设 关于堆栈帧内部,它可能在其他解释器中无效。
请参阅http://www.pythonhosted.org/log_calls/上的联机文档, 或者在log calls/docs/目录中,查看用法、详细信息、示例和tips und tricks。