私はエージェントにタスクを送信しますが、私がこの機能に入れたプリントステートメントの出力を見ることはできません。エージェントでコード実行をトレースするにはどうすればよいですか?SLIMEでエージェントのstdout/log出力をキャプチャする方法は?
EDIT:私ははコンソールではなく、SLIMEで出力を得るのですか判明。質問は今、SLIMEの出力を見る方法ですか?
私はエージェントにタスクを送信しますが、私がこの機能に入れたプリントステートメントの出力を見ることはできません。エージェントでコード実行をトレースするにはどうすればよいですか?SLIMEでエージェントのstdout/log出力をキャプチャする方法は?
EDIT:私ははコンソールではなく、SLIMEで出力を得るのですか判明。質問は今、SLIMEの出力を見る方法ですか?
キーは、シェルからlein swankを呼び出す代わりに、emacsから下位のlispプロセスとしてswankを開始することです。これを行う1つの方法は、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を再起動する必要はありません。
もっと最近のバージョンのclojure-modeでは、 'M-x clojure-jack-in'を実行してSLIMEを起動し、ClojureをREPLに現れるSTDOUTで実行することができます。 –