2012-09-28 13 views
6

W najnowszej wersji (0.2.4) z tools.logging, podczas logowania z (błąd trochę wyjątku), rejestrowany jest tylko komunikat wyjątku. Zależę od tego, czy ślad stosu jest drukowany podczas rejestrowania wyjątku. Drukowanie wyjątku na stderr lub stdout nie jest opcją.Narzędzia Clojure.logowanie niezalogowane stacktrace

O ile widzę w source, (błąd ...) przyjmuje wyjątek jako pierwszy argument.

(log/error throwable error-message) 

Co mogę zrobić, aby uwzględnić śledzenie stosu podczas rejestrowania?

Odpowiedz

3

Podpis błędu jest:

(defmacro error 
    "Error level logging using print-style args." 
    {:arglists '([message & more] [throwable message & more])} 
    [& args] 
    `(logp :error [email protected])) 

co oznacza, że ​​z zaledwie 1 param (jak w (error some-exception)), parametr jest wiadomość (która w danym przypadku jest toString jakiegoś wyjątku).

Jeśli chcesz logować się StackTrace potrzebujesz drugi komunikat param jak:

(def ex (RuntimeException. "ex")) 
(error ex "Something broke!") 

lub

(error ex ex) 
+0

(błędu ex "jakiś-message") jest, co starałem. Nie drukuje śledzenia stosu. – Odinodin

+0

Witam Odinodin, to działa dla mnie. Właśnie zdałem sobie sprawę, że twierdzisz, że używasz wersji 0.2.5, ale ta wersja jeszcze nie istnieje. Najnowsza dostępna wersja to 0.2.4. – DanLebrero

+0

Przepraszam, masz rację, używam wersji 0.2.4 – Odinodin

Powiązane problemy