[prev in list] [next in list] [prev in thread] [next in thread] 

List:       slf4j-dev
Subject:    [slf4j-dev] [JIRA] (SLF4J-371) Support the lambda expression in the Logger
From:       "QOS.CH (JIRA)" <noreply-jira () qos ! ch>
Date:       2019-06-27 23:25:02
Message-ID: JIRA.13477.1463962769000.1243.1561677902572 () Atlassian ! JIRA
[Download RAW message or body]


    [ https://jira.qos.ch/browse/SLF4J-371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=19666#comment-19666 \
] 

Dean Hiller commented on SLF4J-371:
-----------------------------------

@ceki any comments?  thanks, Dean

> 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
> Fix For: 2.0.0-alpha1
> 
> 
> 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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic