【发布时间】:2017-11-26 05:18:19
【问题描述】:
在我的代码中,我广泛使用线程宏。有时虽然我想在宏中记录一个或多个值。例如,
(-> val
(fn-1)
(fn-2)
(fn-3))
在这里,假设我想记录fn-2 的结果。我该怎么做呢?
我尝试了两种方法:
- 将
trace放在fn-2之后。 - 在
fn-2之后放置一个匿名函数,例如#(do (log/debug %) %)。
使用trace 似乎并不理想,因为它无法与真正的记录器集成。滚动你自己的函数似乎也不理想。
这里的最佳做法是什么?
【问题讨论】:
-
你能解释一下为什么滚动你自己的函数不理想吗?
-
(doto log/debug)适用于->,但不适用于->>。 -
我在截屏视频中稍微介绍了这一点:curiousprogrammer.net/2017/11/20/… 大多数情况下,它使用匿名函数或
(doto println)用于线程优先宏。如果您需要更复杂的工具,我建议您使用调试器。