slf4j-log4j桥架和log4j 2.8.1

slf4j-log4j桥架和log4j 2.8.1,log4j,slf4j,log4j2,bridge,Log4j,Slf4j,Log4j2,Bridge,我正在努力删除log4j1.x版本的任何依赖项,因为它们已经下线了。我的代码使用slf4j-log4j12桥。在maven central中,slf4j-log4j的编译依赖项显示版本1.2.17的log4j,更新列显示版本2.8.1 所以我尝试在build.gradle中使用log4j-api-2.8.1来代替默认情况下使用的log4j-1.2.17。但这似乎不起作用。我仍然在从属jar中看到log4j-1.2.17 所以我想问,这是不允许的吗?也就是说,log4j 2.8.1版本或2.x版本

我正在努力删除log4j1.x版本的任何依赖项,因为它们已经下线了。我的代码使用slf4j-log4j12桥。在maven central中,slf4j-log4j的编译依赖项显示版本1.2.17的log4j,更新列显示版本2.8.1

所以我尝试在build.gradle中使用log4j-api-2.8.1来代替默认情况下使用的log4j-1.2.17。但这似乎不起作用。我仍然在从属jar中看到log4j-1.2.17

所以我想问,这是不允许的吗?也就是说,log4j 2.8.1版本或2.x版本之间没有slf4j-log4j桥接器?基本上,我应该迁移代码以使用log4j-api-2.8.1。还是我在这里遗漏了什么

dependencies {
    compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.8.1'
    compile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.25'   
}
slf4j-log4j12是log4j版本1.2的绑定。但是您需要log4j版本2 log4j2绑定,它被命名为log4j-slf4j-impl

要将slf4j与log4j2一起使用,您需要:

log4j api 2.8.1 log4j核心2.8.1 log4j-slf4j-impl 2.8.1 slf4j api 1.7.25 如果您对log4j版本1.2有任何实现和/或依赖性,您还需要:

log4j-1.2-api 2.8.1 但是,在任何情况下都不应包含以下依赖项:

log4j-to-slf4j 2.x log4j 1.2.x slf4j-log4j12是log4j版本1.2的绑定。但是您需要log4j版本2 log4j2绑定,它被命名为log4j-slf4j-impl

要将slf4j与log4j2一起使用,您需要:

log4j api 2.8.1 log4j核心2.8.1 log4j-slf4j-impl 2.8.1 slf4j api 1.7.25 如果您对log4j版本1.2有任何实现和/或依赖性,您还需要:

log4j-1.2-api 2.8.1 但是,在任何情况下都不应包含以下依赖项:

log4j-to-slf4j 2.x log4j 1.2.x
一个问题,我不知道我是否应该把它放在我的主要问题中。Slf4j 1.7.25页面最后列出了org.apache.log4j.*包。但实际的罐子中不包含任何这些。我无法理解这里发生了什么。请帮忙。此外,Log4j-api-2.8.1包现在的名称空间为org.apage.logging.Log4j.*那么这与Sl4j api 1.7.25有什么关系?@WinCPP:我认为,slf4j-apidocs中的org.apache.Log4j.*包是Log4j-to-Sl4j的。这就是为什么这些不在主api中的原因。使用slf4j安装的实现在log4j-sl4j-impl中。@Mike HM感谢您注意到输入错误。有一个问题,我不知道我是否应该把它放在我的主要问题中。Slf4j 1.7.25页面最后列出了org.apache.log4j.*包。但实际的罐子中不包含任何这些。我无法理解这里发生了什么。请帮忙。此外,Log4j-api-2.8.1包现在的名称空间为org.apage.logging.Log4j.*那么这与Sl4j api 1.7.25有什么关系?@WinCPP:我认为,slf4j-apidocs中的org.apache.Log4j.*包是Log4j-to-Sl4j的。这就是为什么这些不在主api中的原因。在log4j-sl4j-impl中提供了使用slf4j进行拟合的实现。@Mike HM感谢您注意到输入错误。