[
https://issues.apache.org/jira/browse/LOG4J2-1326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15212007#comment-15212007
]
Remko Popma commented on LOG4J2-1326:
-------------------------------------
The String versions of the methods need to remain because removing them would
result in NoSuchMethodErrors in user code that was compiled against the current
log4j API. I would not deprecate the String methods (we will never remove these
methods in the 2.x version and the compiler warnings would just be annoying,
not helpful).
AbstractLogger would have one-line implementation of these methods similar to
what's already there.
Matt is right that by changing the existing ObjectMessage implementation to do
an {{instanceof CharSequence}} check we can achieve the desired behaviour with
the existing {{log(Object)}} methods without API changes. Most of the benefit
of this proposal is in communicating to users that they should let their
Objects implement CharSequence so these Objects can be logged without creating
garbage. This is not obvious with the current API.
I guess the question is whether this communicative aspect justifies the
additional methods.
> API change: add methods for logging CharSequences (was: Provide support for
> CharSequence parameters for low and zero-GC applications)
> -------------------------------------------------------------------------------------------------------------------------------------
>
> Key: LOG4J2-1326
> URL: https://issues.apache.org/jira/browse/LOG4J2-1326
> Project: Log4j 2
> Issue Type: New Feature
> Components: API
> Affects Versions: 2.5
> Reporter: Vlad Shurupov
> Labels: features, performance
>
> Currently, the preferred way of logging character sequences in log4j 2 is by
> passing in tokens of type {{java.lang.String}}. It would be very beneficial
> if the API could provide methods that take {{java.lang.CharSequence}} tokens.
> This would allow high performance zero or low-GC applications to re-use the
> existing mutable structures implementing {{java.lang.CharSequence}} for
> continuous logging without new objects being created.
> A high-performance implementation of the logger would be expected to copy out
> the contents of a single or multiple instances of {{java.lang.CharSequence}}
> so that they could be re-used in the subsequent logging call.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]