这是个坏主意吗:使用Lambda简化门控日志记录

时间:2019-05-23 15:44:32

标签: java performance lambda log4j

我正在考虑:

一流的人

new sap.ushell.services.UserInfo().getId()

然后,针对每条日志消息

private static final Logger LOG = Logger.getLogger(MyClass.class.getName());

// A little lambda to streamline gated logging.
private static final BiConsumer<Level, Supplier<Object>> log = 
    ( level, messageSupplier ) -> {
       if ( LOG.isEnabledFor(level)) {
           LOG.log(level, messageSupplier.get());
       }
};

想法是不必每次都重复门逻辑(log.accept(Level.INFO, () -> "forcedResult = " + String.valueOf(forcedResult) + "; destroying rule: " + rule.toString()); )。

我担心的是过度使用lambda和可能涉及的运行时开销。

这种方法会奏效还是会损害内存使用和/或性能?

0 个答案:

没有答案