如何在SLIME中捕获代理的stdout / log输出?

时间:2011-02-27 08:37:07

标签: clojure slime swank

我将一个任务发送给代理,但是看不到我放入函数的任何打印语句的输出。如何在代理上跟踪代码执行?

编辑:结果我在控制台中获取输出,但在SLIME中没有。现在的问题是,如何在SLIME中看到输出?

2 个答案:

答案 0 :(得分:4)

关键是从emacs开始作为低级lisp进程而不是从shell调用lein swank。一种方法是使用elein(命令为M-x elein-swank)。然后,您可以检查下级lisp缓冲区(在使用elein的示例中称为*elein-swank*)中的输出,或执行slime-redirect-inferior-output并在repl中使输出内联。 Clojure.contrib.logging是一个用于发送日志输出的有用工具。

答案 1 :(得分:1)

您可以将调用包装在(with-out-str (def result (my-code)))中的repl中,以将输出捕获为字符串。这样你可以只为你正在处理的代码做到这一点,你不必重新启动你的repl来开始获得你的输出。