我使用SLF4J
和Logback
来记录我的应用程序中的基础架构。
我在任何日志之前使用Logger.isDebugEnable()
方法,样本:
if(logger.isDebugEnable())
logger.debug('process transaction....')
上述代码的目标是:当日志级别不是process transaction....
时,不要在堆中构造字符串Debug
。
我的问题是:
在没有检查启用日志级别的情况下,我的代码样式或直接logger.debug('process transaction....')
之间是否有益处?
答案 0 :(得分:2)
这是log4j项目的遗产。 slf4j引入了{}结构,允许您使用:
logger.debug("{}: {}", "MyClass", "Message to show to user");
记录器后端首先检查"是...启用()"然后然后构造记录器字符串。
由于后端检查自己不需要,并且可以删除if子句,只留下logger语句本身。