[
https://issues.apache.org/jira/browse/LOG4J2-2806?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17059425#comment-17059425
]
Ralph Goers edited comment on LOG4J2-2806 at 3/14/20, 6:03 PM:
---------------------------------------------------------------
Thanks. I would also suggest that Monica look into using Markers for each group
that is going to use a Logger. This is a much better way to differentiate than
by using different logger names. I am not an OSGi expert by any means but if
there is something else we could do there that would help we would consider it.
was (Author: [email protected]):
Thanks. I would also suggest that Monica look into using Markers for each group
that is going to use a Logger. This is a much better way to differentiate than
by using different logger names.
> Strange usage of WeakMapFactory in LoggerRegistry
> -------------------------------------------------
>
> Key: LOG4J2-2806
> URL: https://issues.apache.org/jira/browse/LOG4J2-2806
> Project: Log4j 2
> Issue Type: Task
> Reporter: Grzegorz Grzybek
> Priority: Major
>
> I'm working on https://ops4j1.jira.com/browse/PAXLOGGING-311 and I'm checking
> some (maybe a bit artificial) scenario where I create millions of unique
> loggers.
> For this purpose, I've changed
> {{org.apache.logging.log4j.core.LoggerContext#loggerRegistry}} from:
> {code:java}
> private final LoggerRegistry<Logger> loggerRegistry = new LoggerRegistry<>();
> {code}
> to:
> {code:java}
> private final LoggerRegistry<Logger> loggerRegistry = new
> LoggerRegistry<>(new LoggerRegistry.WeakMapFactory<>());
> {code}
> The problem is that this didn't help. the _inner_ map (from logger name to
> instance of {{org.apache.logging.log4j.core.Logger}}) was proper
> {{WeakHashMap}}, but they weak key (logger name) is still strongly referenced
> from the value itself.
> {{WeakHashMap}} Javadoc says:
> bq. The value objects in a WeakHashMap are held by ordinary strong
> references. Thus care should be taken to ensure that value objects do not
> strongly refer to their own keys, either directly or indirectly, since that
> will prevent the keys from being discarded.
> I know {{LoggerRegistry.WeakMapFactory}} is used by
> {{org.apache.logging.log4j.taglib.Log4jTaglibLoggerContext}}, but does it
> work?
--
This message was sent by Atlassian Jira
(v8.3.4#803005)