You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "Ralph Goers (JIRA)" <ji...@apache.org> on 2014/08/25 18:29:57 UTC

[jira] [Commented] (LOG4J2-798) jar scanning for plugins too expensive and called too many times

    [ https://issues.apache.org/jira/browse/LOG4J2-798?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14109272#comment-14109272 ] 

Ralph Goers commented on LOG4J2-798:
------------------------------------

The 4 calls you see are not redundant. They are each collecting different types of plugins. If you do not specify a packages attribute and the .dat file is present this should take milliseconds, not seconds.  

Did you include Log4j's .dat file in your shaded jar?  

> 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: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org