6

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

据我在source中看到的, (error ...) 确实将异常作为第一个参数。

 (log/error throwable error-message)

记录时我可以做些什么来包含堆栈跟踪?

4

1 回答 1

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)
于 2012-09-28T12:23:50.467 回答