Suppose I'm developing a library that will be used in another person's project and my library uses slf4j. And I don't know what logging framework they use. Should my distribution include slf4j-log412.jar and slf4j-jdk14.jar (or, better, specify both of them as a dependency in my maven pom.xml)? Or should I include instructions that they'll need to download and use either of those jars, depending on which logging framework they're using?

Here's what's in my pom.xml at the moment (for logging); the test scope is what keeps the underlying logging framework I'm using (logback) from being a runtime/compile dependency:


<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>

<version>${version.slf4j}</version>
</dependency>

<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>

<!-- use provided scope on real JCL. -->
<!-- ensures it's not inadvertently pulled in, -->
<!-- so that we can use jcl-over-slf4j. -->

<version>1.1.1</version>

<scope>provided</scope>
</dependency>

<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging-api</artifactId>

<!-- use provided scope on real JCL. -->
<!-- ensures it's not inadvertently pulled in, -->
<!-- so that we can use jcl-over-slf4j. -->

<version>1.1</version>

<scope>provided</scope>
</dependency>

<!-- the slf4j commons-logging replacement -->
<!-- if any package is using jakarta commons logging this will -->
<!-- re-route it through slf4j. -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>

<version>${version.slf4j}</version>

<scope>test</scope>
</dependency>

<!-- the slf4j log4j replacement. -->
<!-- if any package is using log4j this will re-route -->
<!-- it through slf4j. -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>

<version>${version.slf4j}</version>

<scope>test</scope>
</dependency>

<!-- the slf4j java.util.logging replacement. -->
<!-- if any package is using java.util.logging this will re-route -->
<!-- it through slf4j. -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>

<version>${version.slf4j}</version>

<scope>test</scope>
</dependency>

<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>

<version>${version.logback}</version>

<scope>test</scope>
</dependency>


On 2011-08-11 13:36, Ceki Gülcü wrote:
Hi again,

Here is another more comprehensive attempt. It's hard for me to say how much of an improvement these are.

Comments welcome.
--
Ceki


_______________________________________________
slf4j-user mailing list
slf4j-user@qos.ch
http://qos.ch/mailman/listinfo/slf4j-user
_______________________________________________
slf4j-user mailing list
slf4j-user@qos.ch
http://qos.ch/mailman/listinfo/slf4j-user

Reply via email to