这个问题已经在这里有了答案:
已关闭8年。
我见过人们以以下方式使用log4j:
if(logger.isDebugEnabled())
{
logger.debug(" message ");
}
但是,我检查了
logger.debug
API的文档,发现它在记录消息之前先检查是否启用了debug
。在这种情况下,额外编写if的目的是什么?写就不完全一样吗
logger.debug(" message ");
?
最佳答案
如果你真的只是在写
logger.debug(" message ");
那就没有好处了但是请考虑:
logger.debug("This: " + message + " happened on thread " + thread +
"because " + cause);
如果结果将被丢弃,则不希望执行字符串连接(可能会进行更昂贵的转换-考虑您可能想要记录的事情,但是转换成字符串的代价很高)。
如果在正常情况下日志记录会对性能产生重大影响,那么添加日志记录代码将无济于事,它可以在突然想要打开诊断的情况下真正为您提供帮助。