You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Sam Brannen (JIRA)" <ji...@apache.org> on 2016/07/13 15:05:20 UTC

[jira] [Commented] (LOGGING-136) API Enhancements: 'String.format(String, Object...)' Functionality & Delegate Convenience Methods

    [ 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)