2011-02-27 18 views
6

Wysyłam zadanie do agenta, ale nie widzę danych wyjściowych żadnych instrukcji drukowania, które wstawiłem do funkcji. Jak śledzić wykonywanie kodu na agentach?Jak przechwycić wyjście standardowe/log agenta w SLIME?

EDIT: Okazuje się zrobić uzyskać dane wyjściowe w konsoli, ale nie w szlamie. Teraz pytanie brzmi: jak wyświetlić wyjście w SLIME?

Odpowiedz

4

Kluczem jest zacząć łabędź od emacs jako gorszy proces selekcji zamiast dzwonić lein swank z powłoki. Jednym ze sposobów na to jest użycie elein (komendą jest M-x elein-swank). Następnie możesz albo sprawdzić wyjście w gorszym buforze seplintowym (który nazywa się *elein-swank* w przykładzie użycia elein), albo wykonać slime-redirect-inferior-output i mieć wyjście w linii w repl. Clojure.contrib.logging to przydatne narzędzie do wysyłania danych wyjściowych dziennika.

+1

W nowszych wersjach trybu clojure można wykonać 'M-x clojure-jack-in', aby uruchomić SLIME i Clojure z STDOUT pojawiającymi się w REPL. –

1

Można zawijać wywołania w replie w (with-out-str (def result (my-code))), aby uchwycić wynik jako ciąg. w ten sposób możesz zrobić to tylko dla kodu, nad którym pracujesz i nie musisz ponownie uruchamiać repliki, aby zacząć uzyskiwać swoje wyniki.