2012-09-28 6 views
6

tools.logging의 최신 버전 (0.2.4)에서 로깅 할 때 (일부 오류가 발생 함) 예외 메시지 만 기록됩니다. 예외가 기록 될 때 스택 추적 인쇄에 의존합니다. 예외를 stderr 또는 stdout에 인쇄하는 것은 옵션이 아닙니다.Clojure tools.logging not stackt stacktrace

나는 source에서 볼 수 있듯이 (error ...) 첫 번째 인수로 예외를 취합니다.

(log/error throwable error-message) 

로깅 할 때 스택 추적을 포함하려면 어떻게해야합니까?

답변

3

오류의 서명은 다음

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

하면 ((error some-exception)에서와 같이) 단지 1 PARAM와 파라미터 (케이스 일부-예외 toString 인) 메시지가 있음을 의미한다. 당신은 당신이 같은 초 PARAM 메시지 필요한 스택 트레이스 기록하려면

는 :

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

또는

(error ex ex) 
+0

(오류 예 "를 일부 메시지는") 내가 시도하는 것이다. 스택 추적을 인쇄하지 않습니다. – Odinodin

+0

안녕하세요 Odinodin, 그것은 나를 위해 작동합니다. 방금 당신이 당신이 0.2.5 버전을 사용하고 있다고 주장했지만, 그 버전은 아직 존재하지 않습니다. 최신 출시 버전은 0.2.4입니다. – DanLebrero

+0

죄송합니다, 당신 말이 맞습니다. 저는 0.2.4 버전을 사용하고 있습니다. – Odinodin