我将任务发送给代理,但无法看到我已放入函数的任何打印语句的输出。如何跟踪代理上的代码执行情况?如何在SLIME中捕获代理的标准输出/日志输出?
编辑:原来我做在控制台中的输出,而不是在泥。现在的问题是,如何看到SLIME中的输出?
我将任务发送给代理,但无法看到我已放入函数的任何打印语句的输出。如何跟踪代理上的代码执行情况?如何在SLIME中捕获代理的标准输出/日志输出?
编辑:原来我做在控制台中的输出,而不是在泥。现在的问题是,如何看到SLIME中的输出?
关键是从emacs开始swank作为低级lisp进程,而不是从shell调用lein swank。一种方法是使用elein(该命令是M-x elein-swank
)。然后,您可以检查劣势lisp缓冲区中的输出(在使用elein的示例中称为*elein-swank*
),或者执行slime-redirect-inferior-output
并将输出内联到repl中。 Clojure.contrib.logging是发送日志输出的有用工具。
您可以将调用包装在(with-out-str (def result (my-code)))
的repl中以将输出捕获为字符串。通过这种方式,您可以仅为您正在处理的代码执行此操作,而且您不必重新启动repl即可开始获取输出。
在更新版本的clojure模式中,您可以使用M-x clojure-jack-in启动SLIME和Clojure,并在STLOUT中出现REPL。 – 2012-02-14 09:02:50