[
https://issues.apache.org/jira/browse/LOG4J2-1412?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Remko Popma reassigned LOG4J2-1412:
-----------------------------------
Assignee: Remko Popma
> Unbox ringbuffer size should be configurable
> --------------------------------------------
>
> Key: LOG4J2-1412
> URL: https://issues.apache.org/jira/browse/LOG4J2-1412
> Project: Log4j 2
> Issue Type: Improvement
> Components: API
> Affects Versions: 2.6
> Reporter: Remko Popma
> Assignee: Remko Popma
>
> The Unbox utility is meant to be used for primitive parameters to a logging
> call with a parameterized message, for example {{logger.debug("pi is {}",
> Unbox.box(Double.PI))}}.
> Unbox is implemented with a ThreadLocal a ringbuffer of StringBuilders. By
> default, the ringbuffer has 16 slots. After 16 calls to {{Unbox.box()}} it
> reuses the first StringBuilder again, so there is a limit to how many things
> can be boxed before the call to Message.getFormattedMessage() breaks.
> This needs to be better documented in the Unbox javadoc and the garbage-free
> manual page. Furthermore, there should be a mechanism to allow users to
> increase the size of the ringbuffer.
> Finally, if Constants.ENABLE_THREADLOCALS is false we should not store
> non-JDK classes in ThreadLocals. The Unbox.State class breaks that principle.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]