【问题标题】:Logback logging class consistencyLogback 日志记录类一致性
【发布时间】:2011-03-30 08:52:53
【问题描述】:

我一直在非正式地使用 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 在这个阶段是如何做到的,我只是使用它。

【问题讨论】:

    标签: java logging log4j logback


    【解决方案1】:

    你通常不会直接使用 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 和配置放入您的类路径中以便使用它。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2015-01-09
        • 2013-04-27
        • 1970-01-01
        • 1970-01-01
        • 2021-03-15
        • 2017-10-25
        • 2014-10-25
        • 2015-07-14
        相关资源
        最近更新 更多