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

时间:2017-12-29 02:08:03

标签: java logging lambda functional-interface

我们传统的记录方式是:

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

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

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

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

1 个答案:

答案 0 :(得分:1)

  

我们传统的记录方式是......

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

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