slf4j-log4j桥与log4j 2.8.1

时间:2017-04-01 07:20:55

标签: log4j slf4j log4j2 bridge

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

所以我尝试在build.gradle中使用,希望使用log4j-api-2.8.1来代替默认提取的log4j-1.2.17。但这似乎并没有奏效。我仍然在依赖的罐子里看到log4j-1.2.17。

所以我想问一下,这是不允许的事情?即没有slf4j-log4j桥接到log4j 2.8.1版本或者那个问题2.x版本?基本上我应该迁移我的代码以使用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'   
}

1 个答案:

答案 0 :(得分:5)

slf4j-log4j12是log4j 1.2版的绑定。您需要log4j2绑定,其名称为log4j-slf4j-impl

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

  • log4j-api(2.8.1)
  • log4j-core(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)