我向代理发送任务,但看不到我放入函数的任何打印语句的输出。如何跟踪代理上的代码执行?
编辑:原来我确实在控制台中得到了输出,但在 SLIME 中没有。现在的问题是,如何在 SLIME 中查看输出?
关键是从 emacs 开始 swank 作为劣质 lisp 进程,而不是从 shell 调用 lein swank。一种方法是使用elein(命令是M-x elein-swank
)。然后,您可以检查下级 lisp 缓冲区中的输出(*elein-swank*
在使用 elein 的示例中调用),或者执行slime-redirect-inferior-output
并将输出内联到 repl 中。Clojure.contrib.logging 是发送日志输出的有用工具。
您可以将调用包装在您的 repl 中,(with-out-str (def result (my-code)))
以将输出捕获为字符串。通过这种方式,您可以只为您正在处理的代码执行此操作,而无需重新启动您的 repl 即可开始获取您的输出。