[
https://issues.apache.org/jira/browse/LOG4J2-798?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14109306#comment-14109306
]
Ian Barfield commented on LOG4J2-798:
-------------------------------------
I do not see any indication in the code that they are 'collecting different
types of plugins'. They may or may not be using a different 'category', but the
{{loadFromPackages}} call appears to load every plugin of every category that
it finds on each call. Including the first.
I see this once:
{{2014-08-22 22:22:02,494 DEBUG Generated plugins in 0.000056 seconds,
packages: [], preload: false.}}
I see this message once:
{{2014-08-22 22:22:05,737 DEBUG Generated plugins in 3.242552 seconds,
packages: [org.apache.logging.log4j.core], preload: true.}}
and this one three times:
{{2014-08-22 22:22:08,833 DEBUG Generated plugins in 3.085961 seconds,
packages: [org.apache.logging.log4j.core], preload: false.}}
I am including Log4j's .dat file. That is the only way it would work at all
under 2.0, and I see log messages to that effect {{2014-08-22 22:22:02,494
DEBUG Found Plugin Map at jar:file:[...]Log4j2Plugins.dat}}.
> jar scanning for plugins too expensive and called too many times
> ----------------------------------------------------------------
>
> Key: LOG4J2-798
> URL: https://issues.apache.org/jira/browse/LOG4J2-798
> Project: Log4j 2
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.0.1, 2.0.2
> Environment: modern hardware, fat jar
> Reporter: Ian Barfield
>
> related to: [https://issues.apache.org/jira/browse/LOG4J2-741]
> It takes about 3 seconds to perform {{PluginManager.collectPlugins()}} and it
> appears to run 4 times before log4j2 is done initializing. That is pretty not
> okay. Please consider making the plugin discovery method configurable and/or
> curtailing the redundant calls.
> My application jar uses the maven shade plugin. I do not specify a 'packages'
> attribute. I do use a custom plugin (a configuration factory), but I excluded
> the resultant plugin dat file created for it and specify its usage at runtime
> via the appropriate system property.
> My suggestion for the easiest fix is to use the pre-computed plugin list and
> optionally (maybe even enabled by default) also scan the class path for
> custom plugins.
> Some nice extras would be:
> - removing the redundant {{collectPlugins()}} calls
> - using a plugin dat file format that is both human friendly and amenable to
> append operations so that users of the maven shade plugin and users who
> struggle with annotation processors can easily include custom plugins. See
> [https://github.com/addthis/codec] for an example of such a plugin system/
> file format that is based on hocon.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]