commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Gregory (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:14:20 GMT

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

Gary Gregory commented on LOGGING-136:
--------------------------------------

I think Commons Logging should be deprecated in favor of Apache's own Log4j 2 logging API,
which supports Java 8 lambda calls (but only requires Java 7): I would use Log4j 2's {{log4-api}}
module and pick an suitable implementation (like Log4j's own {{log4j-core}}). Log4j 2 provides
separation between the API and different plugin implementations. Please see https://logging.apache.org/log4j/2.x/

With Log4j 2, you can say:
{code:java}
logger.trace("Some long-running operation returned {}", () -> expensiveOperation());
{code}

See https://logging.apache.org/log4j/2.x/manual/api.html and https://logging.apache.org/log4j/2.x/log4j-api/apidocs/index.html

If you want to try it, use the following in your POM instead of Commons Logging:

{code:xml}
<dependencies>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.6.2</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.6.2</version>
  </dependency>
</dependencies>
{code}

> 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