2011-03-30 107 views
1

我一直在非正式地使用Log4j一段時間,現在正在切換到Logback。我已經習慣使用Spiffyensure my logging class is consistentLogback日誌記錄類一致性

即代替

private static final Logger log = Logger.getLogger(Foo.class); 

private final Logger log = Logger.getLogger(this.getClass()); 

我做

private static final Logger log = LoggerHelper.getLogger(); 

有沒有類似的方式的logback做到這一點?我不知道Spiffy在這個階段的表現如何,我只是用它。

回答

3

您通常不會直接使用logback,而是通過slf4j。這是如何使用它:

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 

class A 
{ 
    private static final Logger logger = LoggerFactory.getLogger(A.class); 

    public void method1() 
    { 
     logger.info("Hello world"); 
     .... 
    } 
} 

然後在部署過程中,你可以把罐子的logback和配置到您的類路徑中才能使用它。

3

Spiffy的LoggerHelper使用Throwable.getStackTrace方法。不幸的是,這種方法不是100%可靠的。從的javadoc:

某些虛擬機可能,在某些情況下 ,缺少一個或多個棧從堆棧跟蹤 幀。

換句話說,Spiffy的LoggerHelper可能會返回錯誤地命名的記錄器。如果發生這種情況,該事件將非常難以調試。

相關問題