Logback日志记录类的一致性

时间:2011-03-30 08:52:53

标签: java logging log4j logback

我一直在非正式地使用Log4j,现在我正在切换到Logback。我已经习惯使用Spiffyensure my logging class is consistent

即。而不是

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在这个阶段是如何做的,我只是使用它。

2 个答案:

答案 0 :(得分: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 jar和配置放入类路径中以便使用它。

答案 1 :(得分:3)

Spiffy的LoggerHelper使用Throwable.getStackTrace方法。不幸的是,这种方法并非100%可靠。来自javadocs:

  

某些虚拟机可能在某些情况下   情况,省略一个或多个堆栈   堆栈跟踪中的帧。

换句话说,Spiffy的LoggerHelper可能会返回错误命名的记录器。如果发生这种情况,将很难调试。

相关问题