2012-09-28 18 views
6

tools.logging'un en son sürümünde (0.2.4), (bazı istisnalar dışında) günlüğe kaydedilirken, yalnızca özel durum iletisi günlüğe kaydedilir. Bir özel durum kaydedildiğinde yığın izlemenin yazdırılmasına bağlıyım. Özel durumu stderr veya stdout'a yazdırmak bir seçenek değildir.Clojure tools.logging stacktrace günlüğü kaydedilmiyor

source'da görebildiğim kadarıyla (hata ...) ilk argüman olarak bir istisna gerçekleştirir.

(log/error throwable error-message) 

Kayıt sırasında yığın izlerini eklemek için ne yapabilirim?

cevap

3

hatasının imzadır:

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

((error some-exception) olduğu gibi) sadece 1 param ile parametre (sizin durumunuzda bazı istisnası toString olan) mesaj olduğu anlamına gelir. Eğer gibi ikinci param mesajı ihtiyaç stacktrace oturum açmak istiyorsanız

:

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

veya

(error ex ex) 
+0

(hata eski "bazı-mesaj") Denedim budur. Yığın izi yazdırmaz. – Odinodin

+0

Merhaba Odinodin, benim için çalışıyor. Sadece 0.2.5 sürümünü kullandığınızı iddia ettiğinizi anladım, ancak bu sürüm henüz mevcut değil. En son yayınlanan sürüm 0.2.4. – DanLebrero

+0

Üzgünüz, haklıyım, sürüm 0.2.4 kullanıyorum – Odinodin