在clojure中自定义跟踪
如何将自定义代码注入clojure跟踪库?() 库正在生成如下跟踪: (见附件) 我特别感兴趣的是:在clojure中自定义跟踪,clojure,Clojure,如何将自定义代码注入clojure跟踪库?() 库正在生成如下跟踪: (见附件) 我特别感兴趣的是: 测量调用的时间 输入/输出数据的呈现 重定向输出 我想制作的示例: Measure time: TRACE t4328: (fib 3) (100 ms) TRACE t4329: | (fib 2) (200 ms) TRACE t4330: | | (fib 1) (150 ms) ..... Rendering: Custom rendering per arg/return val
- 测量调用的时间
- 输入/输出数据的呈现李>
- 重定向输出
Measure time:
TRACE t4328: (fib 3) (100 ms)
TRACE t4329: | (fib 2) (200 ms)
TRACE t4330: | | (fib 1) (150 ms)
.....
Rendering: Custom rendering per arg/return value
TRACE t4328: (fib number) (a small number was given)
TRACE t4329: | (fib number) (an even number was returned)
TRACE t4330: | | (fib number) (attention: number is too big)
Stacktrace:
(fib number) (fib.clj line 1)
| (fib number) (fib.clj line 2)
| | (fib number) (fib.clj line ...)
output to disk:
(fib 3)
| (fib 2)
| | (fib 1)
| | => 1
我不确定库是否设计为允许这样的定制,但是由于整个库只是一个文件(),我不介意直接修补它
2010()中的一个问题与此类似,但建议的答案使用了自定义版本的跟踪ns
。
在此处手动注入自定义代码:
(clojure.contrib.trace/trace (str "entering: " s))
简而言之:现在有没有更通用的方法来注入我的自定义代码?被technomancy认为是Robert Hooke?您不必修补
工具。直接跟踪。谢谢您的提示。我会调查的。最新提交已经1年了,您认为它仍然可以使用吗?robert hooke库实际上在实现和提供的功能方面都非常简单,非常有用。使用它(启用用户),所以我想说,它最近没有任何提交的原因是因为它已经非常可靠了。
(clojure.contrib.trace/trace (str "entering: " s))