[
https://issues.apache.org/jira/browse/LOG4J2-898?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14215742#comment-14215742
]
Remko Popma commented on LOG4J2-898:
------------------------------------
Gary, as part of LOG4J2-763, async loggers/appenders now call
{{message.getFormattedMessage()}} before passing the log event to the
background thread (AsyncLogger.java line 249, AsyncLoggerConfigHelper.java line
340, AsyncAppender.java line 143).
Steven, I still have doubts on providing such a configuration. Switching off
that safety is a bit like running with scissors: everyone in your dev team must
be aware that they should NEVER log mutable objects. If you have mutable
objects in your system, then you need to make an immutable copy every time
before passing it to the logger.
How much are you logging (msg/sec) and what kind of latency/throughput
improvement do you expect to gain by formatting in the background thread?
> Format messages asynchronously
> ------------------------------
>
> Key: LOG4J2-898
> URL: https://issues.apache.org/jira/browse/LOG4J2-898
> Project: Log4j 2
> Issue Type: Improvement
> Affects Versions: 2.0.2, 2.1
> Reporter: Steven Grossman
>
> Formatting a message can be an expensive operation (e.g. String.format) and
> it is undesirable for it to be done in the calling thread when using an async
> logger or appender.
> LOG4J2-763 moved this work to the calling thread. Would you consider
> bringing back the previous behavior via a config/system property?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]