Java - 使用功能接口和 lambda 表达式进行日志记录

Java - using functional interface and lambda expression to do logging

我们传统的日志记录方式是:

if (logger.isDebugEnabled()) {
    logger.debug("something to log, and barbarbar {}", object);
}

但是使用 lambda 表达式进行日志记录以减少代码行数和复杂性呢?

logger.debug(() -> return "something to log, and barbarbar " + object);

slf4j或其他记录器不提供这种记录方式的原因是什么?造成的对象创建开销?

Our traditional way to do logging is ...

并非必须在每个用例中都使用条件 logger.isXXXXEnabled()。它旨在仅在您记录需要花费大量时间创建的对象时使用。例如,当您需要将某些数据库查询或复杂结构转换为 XML/JSON 等的日志结果时

对于其他情况,此检查过多。