检查记录器级别的启用与不检查SLF4J \ Logback

时间:2014-12-17 13:58:10

标签: java logging slf4j logback

我使用SLF4JLogback来记录我的应用程序中的基础架构。 我在任何日志之前使用Logger.isDebugEnable()方法,样本:

if(logger.isDebugEnable())
    logger.debug('process transaction....')

上述代码的目标是:当日志级别不是process transaction....时,不要在堆中构造字符串Debug

我的问题是: 在没有检查启用日志级别的情况下,我的代码样式或直接logger.debug('process transaction....')之间是否有益处?

1 个答案:

答案 0 :(得分:2)

这是log4j项目的遗产。 slf4j引入了{}结构,允许您使用:

logger.debug("{}: {}", "MyClass", "Message to show to user");

记录器后端首先检查"是...启用()"然后然后构造记录器字符串。

由于后端检查自己不需要,并且可以删除if子句,只留下logger语句本身。