在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

如何将自定义代码注入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 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))