[ https://jira.qos.ch/browse/SLF4J-371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=19453#comment-19453 ]
Federico Fissore commented on SLF4J-371: ---------------------------------------- An initial effort to support lambdas in slf4j 2.0 has been discussed in the mailing list and resulted in this PR [https://github.com/qos-ch/slf4j/pull/203] If you wish to use the same api with the _current_ version of slf4j, you want to take a look at https://github.com/ffissore/slf4j-fluent > Support the lambda expression in the Logger > ------------------------------------------- > > Key: SLF4J-371 > URL: https://jira.qos.ch/browse/SLF4J-371 > Project: SLF4J > Issue Type: Improvement > Components: Core API > Affects Versions: 1.7.22 > Reporter: MiNG > Assignee: SLF4J developers list > > In some cases, we don't want to calculate the expression for logging eagerly > cause the performance reason. Then, we would write the code like the > following: > {code:java} > if (LOGGER.isWarnEnabled()) > { > LOGGER.warn("some message: {}", Json.serialize(obj)); > }{code} > Before JDK8, there is no way to encapsulate the above code, because the > expression is always calculated before passed as an argument. So, many "if"s > appear in the code and smell badly. > Now, the lambda expression is supported by JDK8, the above could be > simplified like following: > {code:java} > LOGGER.warn(formatter -> formatter.format("some message: {}", > Json.serialize(obj)));{code} > With the default method definition in the org.slf4j.Logger: > {code:java} > public interface Logger > { > default void warn(Function<MessageFormatter, String> messageSupplier) > { > if (this.isWarnEnabled()) > { > /* Calculate the expression only if the WARN level logging is enabled. */ > this.warn(messageSupplier.apply(this.getFormatter())); > } > } > }{code} -- This message was sent by Atlassian JIRA (v7.3.1#73012) _______________________________________________ slf4j-dev mailing list slf4j-dev@qos.ch http://mailman.qos.ch/mailman/listinfo/slf4j-dev