2011-02-27 7 views
6

私はエージェントにタスクを送信しますが、私がこの機能に入れたプリントステートメントの出力を見ることはできません。エージェントでコード実行をトレースするにはどうすればよいですか?SLIMEでエージェントのstdout/log出力をキャプチャする方法は?

EDIT:私ははコンソールではなく、SLIMEで出力を得るのですか判明。質問は今、SLIMEの出力を見る方法ですか?

答えて

4

キーは、シェルからlein swankを呼び出す代わりに、emacsから下位のlispプロセスとしてswankを開始することです。これを行う1つの方法は、elein(コマンドはM-x elein-swankです)を使用することです。次に、下位のlispバッファ(eleinを使用する例では*elein-swank*と呼ばれています)の出力を調べるか、slime-redirect-inferior-outputを実行して、replに出力をインラインにします。 Clojure.contrib.loggingはログ出力を送信するための便利なツールです。

+1

もっと最近のバージョンのclojure-modeでは、 'M-x clojure-jack-in'を実行してSLIMEを起動し、ClojureをREPLに現れるSTDOUTで実行することができます。 –

1

(with-out-str (def result (my-code)))の返信でコールをラップして、出力を文字列として取り込むことができます。あなたが作業しているコードだけでこのようにすることができ、出力を得るためにreplを再起動する必要はありません。

関連する問題