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

Ralph Goers edited comment on LOG4J2-3601 at 9/20/22 4:21 PM:
--------------------------------------------------------------

I was incorrect when I looked at Log4jLoggerFactory. log4j-slf4j2-impl has no 
dependency in the code on log4j-core. So adding the log4j-core dependency makes 
it difficult to use the SLF4J2 binding with any other implementation of the 
Log4j API. From a technical perspective the test scope is correct since the 
binding is validated with log4j-core. Unfortunately, AFAIK Maven/Gradle don't 
provide a way to specify a default dependency. If there was a way to do that we 
certainly would take advantage of that.

Unfortunately, some of our other bindings do require log4j-core.

To be honest, this really could be converted into a bug report that 
log4j-slf4j-impl has a runtime dependency on log4j-core when it should not.


was (Author: ralph.go...@dslextreme.com):
I was incorrect when I looked at Log4jLoggerFactory. log4j-slf4j2-impl has no 
dependency in the code on log4j-core. So adding the log4j-core dependency makes 
it difficult to use the SLF4J2 binding with any other implementation of the 
Log4j API. From a technical perspective the test scope is correct since the 
binding is validated with log4j-core. Unfortunately, AFAIK Maven/Gradle don't 
provide a way to specify a default dependency. If there was a way to do that we 
certainly would take advantage of that.

Unfortunately, some of our other bindings do require log4j-core.

> 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
>    Affects Versions: 2.19.0
>            Reporter: Andy Seaborne
>            Priority: Major
>
> 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)

Reply via email to