You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@storm.apache.org by "Mitchell Rathbun (BLOOMBERG/ 731 LEX)" <mr...@bloomberg.net> on 2020/05/27 00:10:45 UTC

Updating log4j2 version for Storm topology

We are currently using Storm 1.2.3, and we want to update the version of log4j2 being used. In our Maven file, we specify storm-core with version 1.2.3 and provided scope. This dependency has dependencies on log4j-api, log4j-core, slf4j-log4j-impl, etc. The provided version of these dependencies is 2.8.2. I have tried declaring the log4j dependencies in our top level pom.xml with version 2.13.2 and compile scope, and have excluded these dependencies from the storm-core dependency. Regardless, when submitting our Storm topology, we always get the issue:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/bb/bin/package/a/apache-storm-1.2.3/1.2.3-3+b20200407T00292257/libexec/apache-storm-1.2.3/lib/log4j-slf4j-impl-2.8.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
.................

The 2.8.2 version of log4j2 is always used. So it doesn't seem like excluding provided transient dependencies is working as hoped. How can we update log4j2 to version 2.13.2 for our topology?

Re: Updating log4j2 version for Storm topology

Posted by Rui Abreu <ru...@gmail.com>.
Hi Mitchel,

As Sunil mentioned, Storm installation brings a set of libs under its lib
folder.
Example for a 1.1.3 installation:

asm-5.0.3.jar      disruptor-3.3.2.jar  log4j-api-2.8.2.jar
log4j-over-slf4j-1.6.6.jar  minlog-1.3.0.jar   reflectasm-1.10.1.jar
 servlet-api-2.5.jar   storm-core-1.1.3.jar
clojure-1.7.0.jar  kryo-3.0.3.jar       log4j-core-2.8.2.jar
 log4j-slf4j-impl-2.8.2.jar  objenesis-2.1.jar  ring-cors-0.1.5.jar
 slf4j-api-1.7.21.jar  storm-rename-hack-1.1.3.jar

Replace the necessary JARs and see if this fits yout needs.

On Wed, 27 May 2020 at 13:57, sunil yadav <ra...@gmail.com> wrote:

> You need to update the log4j jars which are part of your cluster under lib
> folder.
>
> On Tue, May 26, 2020 at 8:10 PM Mitchell Rathbun (BLOOMBERG/ 731 LEX) <
> mrathbun1@bloomberg.net> wrote:
>
>> We are currently using Storm 1.2.3, and we want to update the version of
>> log4j2 being used. In our Maven file, we specify storm-core with version
>> 1.2.3 and provided scope. This dependency has dependencies on log4j-api,
>> log4j-core, slf4j-log4j-impl, etc. The provided version of these
>> dependencies is 2.8.2. I have tried declaring the log4j dependencies in our
>> top level pom.xml with version 2.13.2 and compile scope, and have excluded
>> these dependencies from the storm-core dependency. Regardless, when
>> submitting our Storm topology, we always get the issue:
>>
>> SLF4J: Class path contains multiple SLF4J bindings.
>> SLF4J: Found binding in
>> [jar:file:/bb/bin/package/a/apache-storm-1.2.3/1.2.3-3+b20200407T00292257/libexec/apache-storm-1.2.3/lib/log4j-slf4j-impl-2.8.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
>> .................
>>
>> The 2.8.2 version of log4j2 is always used. So it doesn't seem like
>> excluding provided transient dependencies is working as hoped. How can we
>> update log4j2 to version 2.13.2 for our topology?
>>
>

Re: Updating log4j2 version for Storm topology

Posted by sunil yadav <ra...@gmail.com>.
You need to update the log4j jars which are part of your cluster under lib
folder.

On Tue, May 26, 2020 at 8:10 PM Mitchell Rathbun (BLOOMBERG/ 731 LEX) <
mrathbun1@bloomberg.net> wrote:

> We are currently using Storm 1.2.3, and we want to update the version of
> log4j2 being used. In our Maven file, we specify storm-core with version
> 1.2.3 and provided scope. This dependency has dependencies on log4j-api,
> log4j-core, slf4j-log4j-impl, etc. The provided version of these
> dependencies is 2.8.2. I have tried declaring the log4j dependencies in our
> top level pom.xml with version 2.13.2 and compile scope, and have excluded
> these dependencies from the storm-core dependency. Regardless, when
> submitting our Storm topology, we always get the issue:
>
> SLF4J: Class path contains multiple SLF4J bindings.
> SLF4J: Found binding in
> [jar:file:/bb/bin/package/a/apache-storm-1.2.3/1.2.3-3+b20200407T00292257/libexec/apache-storm-1.2.3/lib/log4j-slf4j-impl-2.8.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
> .................
>
> The 2.8.2 version of log4j2 is always used. So it doesn't seem like
> excluding provided transient dependencies is working as hoped. How can we
> update log4j2 to version 2.13.2 for our topology?
>