我正在阅读Java中的参数化日志记录,据说它使用参数化日志记录而不是连接,因为它执行惰性求值.
而不是
logger.debug("My text is" + x);
Run Code Online (Sandbox Code Playgroud)
使用:
logger.debug("My text is {}", x);
Run Code Online (Sandbox Code Playgroud)
如果跟踪级别仅设置为信息日志,为什么连接会在第一个方案中发生?
另外如果我在日志中有一个耗时的功能,据说使用:
logger.debug("My text is {}", () -> compute());
Run Code Online (Sandbox Code Playgroud)
代替
logger.debug("My text is {}", compute());
Run Code Online (Sandbox Code Playgroud)
在这种情况下,为什么lambda方法被认为是更好的方法.不会计算也像字符串连接情况一样懒惰吗?