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

问题描述 投票:0回答:1

我们传统的记录方式是:

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

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

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

有没有理由说slf4j或其他记录器不提供这种方式来记录?造成对象创建开销?

java logging lambda functional-interface
1个回答
1
投票

我们传统的伐木方式是......

在每个用例中使用条件logger.isXXXXEnabled()不是强制性的。它仅在您记录需要很长时间才能创建的对象时使用。例如,当您需要将某些数据库查询或复杂结构的日志结果转换为XML / JSON等时。

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

© www.soinside.com 2019 - 2024. All rights reserved.