2012-09-28 7 views
6

tools.loggingの最新バージョン(0.2.4)では、(何らかのエラーが発生した)ロギング時に例外メッセージのみが記録されます。私は、例外が記録されたときにスタックトレースを出力することに依存しています。例外をstderrまたはstdoutに出力することは選択できません。Clojure tools.logging not stackt stacktrace

私がsourceに見る限り、(エラー...)は最初の引数として例外をとります。

(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

を(エラーEX "いくつかのメッセージ")私が試したものです。スタックトレースは印刷されません。 – Odinodin

+0

こんにちはOdinodin、それは私のために働く。私はちょうどあなたがバージョン0.2.5を使用していると主張していることに気づいたが、そのバージョンはまだ存在していない。最新のリリースバージョンは0.2.4です。 – DanLebrero

+0

申し訳ありませんが、私はバージョン0.2.4を使用しています – Odinodin