Log4J - 测试日志级别有用吗?
问题描述:
我做代码审查,我想你对一小块代码思想:Log4J - 测试日志级别有用吗?
if(logger.isDebugEnabled())
{
logger.debug("debug log");
}
是否有这样做的测试if(logger.isDebugEnabled())
的真正原因/收益?
为什么不直接写logger.debug("debug log");
没有测试?
答
这对您提供的示例没有用处。
logger.debug("Info: " + someObject.getSomeInformation());
注意,方法getSomeInformation
将在someObject
被称为logger.debug
之前被调用,水平是否调试与否:但是如果您在日志行中的其他数据,例如,它可以是有用的。此外,将执行字符串连接。为了避免方法调用和字符串连接的代价,你可以在你的问题中加入if
。
+0
'请注意getSomeInformation方法将在logger.debug之前在someObject上调用'我不知道这一点。事实上,现在我可以看到差异。感谢您的洞察力;) – TheEwook 2013-04-04 11:28:09
您在询问之前是否尝试过寻找它? http://*.com/questions/963492/in-log4j-does-checking-isdebugenabled-before-logging-improve-performance – BobTheBuilder 2013-04-04 11:23:34
@baraky是的,这正是我正在寻找。感谢您的链接(在发布我的问题之前没有找到它) – TheEwook 2013-04-04 11:26:35