我想与社区核实一下,如果这是一种公认的做法,是否为连续出现的每个调试语句设置多个 if 条件:
if (log.isDebugEnabled()) log.debug("rproductType = "+ producteType);
if (log.isDebugEnabled()) log.debug("rbundleFlag = " + bundleFrlag);
if (log.isDebugEnabled()) log.debug("rmrktSegment = " + mrktSeegment);
if (log.isDebugEnabled()) log.debug("rchannelTy = " + channelrTy);
if (log.isDebugEnabled()) log.debug("rcompanyPartner = " + coempanyPartner);
if (log.isDebugEnabled()) log.debug("rpreSaleDate = " + preSaleDaete);
if (log.isDebugEnabled()) log.debug("rportNC = " + portrNC);
if (log.isDebugEnabled()) log.debug("rLDC debug end");
我个人支持使用一个 if 条件来包装整个日志语句,因为它们是连续出现的。您对此有何意见?或者你明白为什么原作者想要为每个调试语句都有一个 if 条件吗?
谢谢!
最佳答案
充其量,它是凌乱的。在最坏的情况下,它会执行绝对冗余的函数调用。
共享 if
之间的唯一潜在逻辑差异是调试选项是否在调用中以某种方式更改(可能通过重新加载配置)。但是捕获额外的半个调用确实不值得编写大量代码。
只是改变它。 Don't Repeat Yourself
if
存在的原因是为了避免在不处于 Debug模式时构建调试字符串的开销;那部分你应该保留(或者不保留,如果你发现这不是你应用程序的性能关键部分)。
编辑 仅供引用,通过“改变它”,我的意思是改为这样做:
if (log.isDebugEnabled())
{
log.debug("rproductType = "+ producteType);
log.debug("rbundleFlag = " + bundleFrlag);
// etc
}
关于java - 一个 (log.isDebugEnabled()) 条件每个调试语句出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6500575/