【发布时间】:2017-09-14 15:04:09
【问题描述】:
我正在阅读 Java 中的参数化日志记录,据说使用参数化日志记录而不是串联,因为它执行惰性求值。
所以不是
logger.debug("My text is" + x);
使用:
logger.debug("My text is {}", x);
如果跟踪级别设置为仅信息日志,为什么在第一种情况下会发生串联?
另外,如果我在日志中有一个耗时的功能,据说使用:
logger.debug("My text is {}", () -> compute());
而不是
logger.debug("My text is {}", compute());
在这种情况下,为什么 lambda 方法被认为是更好的方法。不会像在字符串连接情况下一样懒惰地调用计算吗?
【问题讨论】: