Log4j 2 manual举例说明如何使用lambdas进行"懒惰记录":
logger.trace("Some long-running operation returned {}", () -> expensiveOperation());
它还给出了一个如何使用格式参数来避免不必要的字符串连接的示例:
logger.debug("Logging in user {} with birthday {}", user.getName(), user.getBirthdayCalendar());
我的问题:我可以通过简单地为一个lambda提供正常的字符串连接方法来获得相同的性能优势吗?
logger.trace(() -> "Concatting " + user.getName() + " with " + expensiveOperation());
答案 0 :(得分:2)
您示例中的最佳效果是
logger.trace("Concatting {} with {}", () -> user.getName(), () -> expensiveOperation());
这样