Clojure 如何在SLIME中捕获代理的标准输出/日志输出?

Clojure 如何在SLIME中捕获代理的标准输出/日志输出?,clojure,slime,swank,Clojure,Slime,Swank,我向代理发送任务,但看不到我放入函数中的任何打印语句的输出。如何跟踪代理上的代码执行 编辑:结果表明,我确实在控制台中获得了输出,但在SLIME中没有。现在的问题是,如何在SLIME中看到输出?关键是从emacs开始swank作为低级lisp过程,而不是从shell调用lein swank。一种方法是使用(命令是M-x elein-swank)。然后,您可以检查低级lisp缓冲区中的输出(在使用elein的示例中称为*elein swank*),或者执行slime redirect substa

我向代理发送任务,但看不到我放入函数中的任何打印语句的输出。如何跟踪代理上的代码执行


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

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

您可以将调用封装在repl in
(不带out str(def result(my code))
中,将输出捕获为字符串。这样,您就可以只对正在处理的代码执行此操作,而无需重新启动repl即可开始获取输出

在clojure模式的最新版本中,您可以执行
M-x clojure jack In
启动SLIME和clojure,并在REPL中显示STDOUT。