With Java 8 you can add default methods. It won't hurt any implementations
as long as you provide a default implementation in Logger's interface.


Cheers,
Paul

On Fri, Aug 7, 2015 at 12:58 PM, Gary Gregory (JIRA) <[email protected]>
wrote:

>
>     [
> https://issues.apache.org/jira/browse/LOG4J2-599?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14662153#comment-14662153
> ]
>
> Gary Gregory edited comment on LOG4J2-599 at 8/7/15 5:58 PM:
> -------------------------------------------------------------
>
> Here is one argument against all these names: What about efficient APIs for
> {code:java}
> org.apache.logging.log4j.Logger.debug(Marker, String, Object...)
> {code}
> Like:
> {code:java}
> org.apache.logging.log4j.Logger.debug(Marker, String, Object)
> org.apache.logging.log4j.Logger.debug(Marker, String, Object, Object)
> org.apache.logging.log4j.Logger.debug(Marker, String, Object, Object,
> Object)
> {code}
>
> and so on for trace, info, ...
>
> If we add more public APIs, we should add all that we need, like the
> above. Otherwise we'll end up with:
>
> - Logger
> - Logger2 extends Logger
> - Logger3 extends Logger2
> - ...
>
>
>
>
> was (Author: garydgregory):
> Here is one argument against all these names: What about efficient APIs for
> {code:java}
> org.apache.logging.log4j.Logger.debug(Marker, String, Object...)
> {code}
> Like:
> {code:java}
> org.apache.logging.log4j.Logger.debug(Marker, String, Object)
> org.apache.logging.log4j.Logger.debug(Marker, String, Object, Object)
> org.apache.logging.log4j.Logger.debug(Marker, String, Object, Object,
> Object)
> {code}
>
> and so on for trace, info, ...
>
>
> > Support lambda functions (or similar) for log message parameters
> > ----------------------------------------------------------------
> >
> >                 Key: LOG4J2-599
> >                 URL: https://issues.apache.org/jira/browse/LOG4J2-599
> >             Project: Log4j 2
> >          Issue Type: Brainstorming
> >          Components: Core
> >            Reporter: Matt Sicker
> >            Priority: Minor
> >              Labels: Java8
> >
> > It would be nice if we could support 0-param lambda functions (or the
> equivalent: interfaces with a single empty-parameter message call), or more
> simply, allow Runnables (or something similar) to be passed which will be
> dynamically executed if the log message is enabled.
> > The use case here is that although string construction of the log
> message is a performance issue that is already solved quite well, the
> problem of adding in information to the log message that makes other
> calculations still needs to be wrapped in an if check.
> > I'm not sure if it'd be best to just use Runnable, or create a new
> interface, or try to emulate how Java 1.8 lambdas work via an interface
> with a single method defined. The details here would still need to be
> fleshed out, but I think this sort of feature could be rather handy
> (especially in a Java 1.8+ environment, or in Groovy/Scala/etc.).
>
>
>
> --
> This message was sent by Atlassian JIRA
> (v6.3.4#6332)
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to