[slf4j-user] Question regarding slf4j and 3rd parties libraries
Joern Huxhorn
jhuxhorn at googlemail.com
Tue May 25 14:40:11 CEST 2010
Hi Olivier.
On 25.05.2010, at 10:53, Olivier Bourdon wrote:
> Hello everyone
>
> let's assume that my Java code is using several different 3rd parties libraries (Hibernate, Jersey and some others) which
> use "potentially unknown" logging mechanisms (java standard logging or log4j). How will slf4j behave in this case as
> I know I can not use more than 1 binding ? Do I need any special configuration file settings ?
>
You'd use one binding - I'd suggest Logback - and bridge all other logging frameworks to SLF4J.
I can only explain a bit for maven.
In the 3rd-party dependency that is using one of the bridged frameworks, exclude it in your pom file, e.g. like this:
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.2</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
You can do so either in the pom of your application or in the <dependencyManagement>-part of your parent pom.
Doing just this would result in a ClassNotFoundException during runtime so you have to add the bridging jar manually to your application. For commons-logging, this is:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${slf4jVersion}</version>
</dependency>
You need to check all dependencies of your application for left-over dependencies, though, so no dependency is still including commons-logging.
mvn dependency:tree
is incredibly helpful concerning this.
Do the same for any log4j-dependency and use
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>${slf4jVersion}</version>
</dependency>
instead.
Bridging jul to SLF4J is a bit more complex since the original implementation can't be swapped out since they are contained in the java-package.
Take a look at http://www.slf4j.org/legacy.html
<shameless-plug>
And while you get happy with SLF4J and Logback, be sure to take a look at Lilith, too.
http://lilith.huxhorn.de
</shameless-plug>
Cheers,
Joern.
More information about the slf4j-user
mailing list