commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sam Brannen (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LOGGING-136) API Enhancements: 'String.format(String, Object...)' Functionality & Delegate Convenience Methods
Date Wed, 13 Jul 2016 15:05:20 GMT

    [ https://issues.apache.org/jira/browse/LOGGING-136?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15375180#comment-15375180
] 

Sam Brannen commented on LOGGING-136:
-------------------------------------

Dear Commons Logging Team,

I think I speak for the entire community when I say that having to write code like the following
in 2016 (especially on Java 8) is more than painful.

{code:java}
if (logger.isDebugEnabled()) {
    logger.debug(String.format("Delegating to %s to process context configuration %s.",
        name(loader), configAttributes));
}
{code}

The above could be replaced with something along the lines of what the reporter suggested:

{code:java}
logger.debug("Delegating to %s to process context configuration %s.",
    name(loader), configAttributes);
{code}

And if you'd like to be kind to the Java 8+ community (which is growing daily), it would be
great if you introduced support for lambda expressions as well, like the following:

{code:java}
logger.debug(() -> String.format("Delegating to %s to process context configuration %s.",
    name(loader), configAttributes));
{code}

The above would naturally work with a functional interface that is not physically annotated
with {{@FunctionalInterface}}, thereby supporting Java 6 or Java 7; any single abstract method
interface will suffice.

Is there any chance you will release Commons Logging 2.0 in 2016 with updated, modern APIs?

Thanks in advance for your consideration!

Sam Brannen

> API Enhancements: 'String.format(String, Object...)' Functionality & Delegate Convenience
Methods
> -------------------------------------------------------------------------------------------------
>
>                 Key: LOGGING-136
>                 URL: https://issues.apache.org/jira/browse/LOGGING-136
>             Project: Commons Logging
>          Issue Type: Improvement
>    Affects Versions: 1.1.1
>         Environment: N/A
>            Reporter: Daniel Siviter
>              Labels: api, api-addition
>             Fix For: 2.0
>
>         Attachments: commons-logging-1.1.1-src.rar, commons-logging-1.1.1.jar, site.rar
>
>   Original Estimate: 4h
>  Remaining Estimate: 4h
>
> Improvements to the API to allow convenience methods for performing {{String.format(String,
Object...)}} and allow access to the internal logging delegate.
> Firstly, to add the {{String#format(String, Object...)}} functionality modify the methods
(note: only {{#trace(...)}} shown):
> {{void trace(Object message, Object... args);}}
> {{void trace(Object message, Throwable t, Object... args);}}
> This would allow compatiblity with previous versions of the API (although I believe they
would still require a re-compile) and help tidy up code.
> Secondly, to obtain access to the internal instance of a logger the addition of a {{#getDeletegate()}}
method.
> I can supply the code if required.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message