Andy Seaborne commented on LOG4J2-673:

In case it helps anyone coming to this ticket: 

When there is a dependency on log4j-web, there are two Log4j2Plugins.dat files 
to be merged in order to shade.

> plugin preloading fails in shaded jar files
> -------------------------------------------
>                 Key: LOG4J2-673
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-673
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0-rc2, 2.1
>            Reporter: Michael Semb Wever
>            Assignee: Matt Sicker
>            Priority: Critical
>              Labels: annotations, compiler, plugins
>             Fix For: 3.0.0
>         Attachments: 
> 0002-LOG4J2-673-plugin-preloading-fails-in-shaded-jar-fil.patch, 
> 0005-LOG4J2-673-plugin-preloading-fails-in-shaded-jar-fil.patch
> Support for plugin preloading through the standard 
> javax.annotation.processing tool was adding in LOG4J2-595
> But the plugin processor always creates and stores the processed "Plugin" 
> annotated classes into the same file. This works fine when the classpath 
> consists of individual jar files, but fails when shaded jar files are used.
> A tested fix exists at 
> https://github.com/finn-no/logging-log4j2/tree/bugfix/LOG4J2-673
> There's also a github pull request and a manual diff attached. (I can clean 
> up anything not used afterwards)
> The fix saves the dat file in a location under META-INF that matches the 
> shared package all the processed plugins are found under.
> The package attribute in the config file is then used so that multiple dat 
> files can be loaded at runtime.
> This means that the package attribute is no longer deprecated.
> This has been tested against 
> https://github.com/finn-no/log4j2-logstash-jsonevent-layout

This message was sent by Atlassian Jira

Reply via email to