2011-02-27 1 views
6

Я отправляю задачу агенту, но не могу видеть вывод каких-либо заявлений печати, которые я ввел в эту функцию. Как отслеживать выполнение кода для агентов?Как записать вывод stdout/log агента в SLIME?

EDIT: Оказывается, я сделать получить выход в консоли, но не в слизи. Вопрос в том, как увидеть результат в SLIME?

ответ

4

Ключ должен начинаться с emacs как процесс нижнего lisp вместо того, чтобы вызвать lein swank из оболочки. Один из способов сделать это - использовать elein (команда M-x elein-swank). Затем вы можете либо проверить вывод в нижнем буфере lisp (который называется *elein-swank* в примере использования elein), либо выполнить slime-redirect-inferior-output и иметь выход inline в repl. Clojure.contrib.logging - полезный инструмент для отправки вывода журнала.

+1

В более поздних версиях режима clojure вы можете сделать «M-x clojure-jack-in», чтобы запустить SLIME и Clojure с STDOUT, появляющимися в REPL. –

1

Вы можете обернуть вызовы в своем repl в (with-out-str (def result (my-code))), чтобы захватить вывод в виде строки. таким образом, вы можете сделать это только для кода, над которым работаете, и вам не нужно перезапускать реплика, чтобы начать получать ваш результат.