Как захватить вывод stdout / log агента в SLIME? - PullRequest
6 голосов
/ 27 февраля 2011

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

РЕДАКТИРОВАТЬ: Оказывается, я сделать получить вывод в консоли, но не в SLIME.Вопрос теперь в том, как увидеть вывод в SLIME?

Ответы [ 2 ]

4 голосов
/ 28 февраля 2011

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

1 голос
/ 28 февраля 2011

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

...