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 等的日志结果时
对于其他情况,此检查过多。
我们传统的日志记录方式是:
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 等的日志结果时
对于其他情况,此检查过多。