Clojure tools.logging不记录stacktrace

时间:2012-09-28 12:11:23

标签: clojure

tools.logging的最新版本(0.2.4)中,使用(错误某些异常)进行日志记录时,仅记录异常消息。我依赖于在记录异常时打印堆栈跟踪。将例外打印到stderr或stdout不是一种选择。

据我所知source,(错误...)确实将异常作为第一个参数。

 (log/error throwable error-message)

记录时如何包含堆栈跟踪?

1 个答案:

答案 0 :(得分:3)

错误的签名是:

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

这意味着只有1个参数(如(error some-exception)中所述),参数就是消息(在您的情况下是某个异常的toString)。

如果要记录堆栈跟踪,则需要第二条参数消息,如:

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

(error ex ex)