2011-02-27 11 views
6

Invio un'attività a un agente, ma non è possibile visualizzare l'output di eventuali istruzioni di stampa inserite nella funzione. Come faccio a tracciare l'esecuzione del codice sugli agenti?Come acquisire l'output stdout/log di un agente in SLIME?

EDIT: venuto fuori che faccio ottenere l'output nella console, ma non di melma. La domanda ora è, come vedere l'output in SLIME?

risposta

4

La chiave è avviare swank da emacs come processo lisp inferiore anziché chiamare lein swank dalla shell. Un modo per farlo è utilizzare elein (il comando è M-x elein-swank). Quindi è possibile controllare l'output nel buffer lisp inferiore (che si chiama *elein-swank* nell'esempio di elein), oppure eseguire slime-redirect-inferior-output e avere l'output in linea nel repl. Clojure.contrib.logging è uno strumento utile per l'invio dell'output del registro.

+1

Nelle versioni più recenti della modalità clojure, è possibile eseguire 'M-x clojure-jack-in' per avviare SLIME e Clojure con STDOUT visualizzato in REPL. –

1

È possibile eseguire il wrapping delle chiamate nel proprio sostituto (with-out-str (def result (my-code))) per acquisire l'output come stringa. in questo modo puoi farlo solo per il codice su cui stai lavorando e non devi riavviare il tuo repl per iniziare a ottenere il tuo output.