You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@logging.apache.org by "Christopher Tubbs (Jira)" <ji...@apache.org> on 2022/09/19 18:37:00 UTC

[jira] [Commented] (LOG4J2-3601) log4j-slf4j2: change of dependency scope for log4j-core

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

Christopher Tubbs commented on LOG4J2-3601:
-------------------------------------------

This bit us when we tried to update to slf4j 2.0.1 with log4j-slf4j2-impl.

See this partial diff comparing log4j-slf4j-impl and the new log4j-slf4j2-impl. Their dependency on log4j-core should be the same: runtime.

{code}
--- ~/.m2/repository/org/apache/logging/log4j/log4j-slf4j-impl/2.19.0/log4j-slf4j-impl-2.19.0.pom	2022-09-19 14:20:09.033906470 -0400
+++ ~/.m2/repository/org/apache/logging/log4j/log4j-slf4j2-impl/2.19.0/log4j-slf4j2-impl-2.19.0.pom	2022-09-18 20:50:31.103647811 -0400
@@ -23,15 +23,13 @@
     <version>2.19.0</version>
   </parent>
-  <artifactId>log4j-slf4j-impl</artifactId>
+  <artifactId>log4j-slf4j2-impl</artifactId>
   <packaging>jar</packaging>
-  <name>Apache Log4j SLF4J Binding</name>
-  <description>The Apache Log4j SLF4J API binding to Log4j 2 Core</description>
+  <name>Apache Log4j SLF4J 2.0 Binding</name>
+  <description>The Apache Log4j SLF4J 2.0 API binding to Log4j 2 Core</description>
   <properties>
     <log4jParentDir>${basedir}/..</log4jParentDir>
     <docLabel>SLF4J Documentation</docLabel>
-    <projectDir>/slf4j-impl</projectDir>
-    <!-- Do not upgrade the SLF4J version. 1.7.26 broke backward compatibility. Users can update the version if
-      they do not require support for SLF4J's EventData -->
-    <slf4j.version>1.7.25</slf4j.version>
+    <projectDir>/slf4j2-impl</projectDir>
+    <slf4j.version>2.0.0</slf4j.version>
     <module.name>org.apache.logging.log4j.slf4j</module.name>
     <maven.doap.skip>true</maven.doap.skip>
@@ -56,5 +54,5 @@
       <groupId>org.apache.logging.log4j</groupId>
       <artifactId>log4j-core</artifactId>
-      <scope>runtime</scope>
+      <scope>test</scope>
     </dependency>
     <dependency>
{code}

> log4j-slf4j2: change of dependency scope for log4j-core
> -------------------------------------------------------
>
>                 Key: LOG4J2-3601
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-3601
>             Project: Log4j 2
>          Issue Type: Improvement
>          Components: SLF4J Bridge
>            Reporter: Andy Seaborne
>            Priority: Major
>             Fix For: 2.19.0
>
>
> The artifact {{log4j-slf4j-impl}} has a scope=runtime dependency on log4j-core. {{log4j-slf4j18-impl}} similarly had scope=runtime.
> The artifact {{log4j-slf4j2-impl}} has a scope=test dependency on log4j-core.
> This changed as part of [commit 8f63620875|https://github.com/apache/logging-log4j2/pull/1024/files#diff-d3ba9956a9f81420d0be3d69477a05b505746272d548ab17404aa47f3e5946b0] although it seems to be unrelated.
> It makes switching over more of a bump. Previously just depending on {{log4j-slf4j-impl}} was enough.
> Please switch back to a scope=runtime dependency for {{log4j-slf4j2-impl}}.
> Example:  we (Apache Jena) use slf4j in the main code base, and select log4j when it needed for binaries tests so we have multiple places where the dependency happens. We can change - but this may be a user experience for others as well.
> {noformat}
> [INFO] +- org.apache.logging.log4j:log4j-slf4j-impl:jar:2.18.0:compile
> [INFO] |  +- org.apache.logging.log4j:log4j-api:jar:2.18.0:compile
> [INFO] |  \- org.apache.logging.log4j:log4j-core:jar:2.18.0:runtime
> {noformat}
> {noformat}
> [INFO] +- org.apache.logging.log4j:log4j-slf4j2-impl:jar:2.19.0:compile
> [INFO] |  \- org.apache.logging.log4j:log4j-api:jar:2.19.0:compile
> {noformat}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)