[ 
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]

Reply via email to