Apache commons günlüğü açıkladı: Bu konuda internette fazla belge bulunmamaktadır. Bu, sizin yararınıza küçük bir makale:
Mesajları java kodunuza kaydetmek için kaynak kodunuza iki sınıf almanız gerekir.
Şimdi
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
, sizin günlüğü oluşturmak için, iki yoldan birini kullanarak sınıfta bir özellik oluşturur:
private Log m_log = LogFactory.getLog(MyClass.class);
veya
private Log m_log = LogFactory.getLog("MyClassLogger");
Birinci seçenek sadece jenerik logger yaratıyor Varsayılan kayıt seçenekleri tarafından kontrol edilecek olan sınıfınız için. İkinci seçenek, individually MyClassLogger ’adını verdiğiniz, varsayılan olarak ayrı ayrı kontrol edilebilen belirli bir kayıt cihazı oluşturuyor. Günlüğü kullanan diğer üçüncü taraf kaynak kodlarını kullanırsanız, ancak bu kaynak koddaki hata ayıklamalarını veya diğer bilgileri görmek istemiyorsanız bunu yapmak isteyebilirsiniz. Kaydediciyi kullanmak oldukça basittir. Sen önceliğe karşılık gelen bir yöntemi çağırarak günlük ileti gönderebilir
m_log.fatal(Object message);
m_log.fatal(Object message, Throwable t);
m_log.error(Object message);
m_log.error(Object message, Throwable t);
m_log.warn(Object message);
m_log.warn(Object message, Throwable t);
m_log.info(Object message);
m_log.info(Object message, Throwable t);
m_log.debug(Object message);
m_log.debug(Object message, Throwable t);
m_log.trace(Object message);
m_log.trace(Object message, Throwable t);
Bu yöntemler en yüksekten en düşüğe öncelik sırasına göre listelenmiştir. Commons logging, varsayılan olarak, INFO ve üstü tüm mesajları gösterecek şekilde ayarlanmıştır. Gördüğünüz gibi, her bir yöntem İstisna gibi bir Throwable tipi gönderebileceğiniz bir yöntemle aşırı yüklenir - çok kullanışlı! Mesajları kaydetmek için yapmanız gereken tek şey bu. Burada istisna nesnesi atılmış hariç kaydedilir olarak stacktrace aramaya gerek yoktur
logger.error("IOException Occured :", exception);
: Senin durumunda
, sadece kullanmak gerekir.
+1 yığın izini gerektiği gibi doldurulur ve yığın izini değiştirmek istemediğiniz sürece bunu açıkça çağırmak için iyi bir neden düşünemiyorum (ki bu benim kitaplığımdan birinde yapmıştım ancak bunu yapar Genel olarak iyi bir fikir :) –
@ peter-lawrey @ jb-nizet Ne olacağım 'exception.fillInStackTrace()' da benim durumumda. –
Hiçbir şey, Throwable kurucusu zaten fillInStackTrace() çağırır. Yığın izi varsayılan olarak var. Endişelenme. –