[
https://issues.apache.org/jira/browse/LOG4J2-1116?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15189998#comment-15189998
]
Remko Popma commented on LOG4J2-1116:
-------------------------------------
After giving it some thought, the LoggerContext may the best place to store
them since its life cycle determines when we want to clean the ThreadLocals.
We could add a method {{register(Log4jThreadLocal)}} to the log4j-api
{{LoggerContext}} but that would break binary compatibility. An alternative is
something like this:
{code}
package org.apache.logging.log4j.util;
...
public class Log4jThreadLocal<T> extends ThreadLocal<T> {
...
public Log4jThreadLocal() {
LoggerContext context = LogManager.getContext(false);
if (context instanceof Log4jThreadLocalRegistry) {
((Log4jThreadLocalRegistry) context).register(this);
}
}
...
}
{code}
Thoughts?
> upgrade to log4j2 causes too frequent minor gc
> ----------------------------------------------
>
> Key: LOG4J2-1116
> URL: https://issues.apache.org/jira/browse/LOG4J2-1116
> Project: Log4j 2
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.3
> Environment: jdk1.6
> slf4j 1.7.9
> log4j2.3
> Reporter: Mingjiang Shi
> Priority: Critical
> Attachments: Log4jThreadLocal.java
>
>
> We used slf4j+log1.2 in our spring web application. Due to the log4j1.0
> performance issue, we upgrade it to log4j2. When it goes to production, it
> experienced very frequent minor gc (once per second) even though the eden
> area is not full. For example, the eden area just occupied 10%, the minor gc
> also happens. The issue disappears when rolling back to log4j1.2.
> Can anyone show some hints on diagnose this issue? Thanks!
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]