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