有一个适用于log4j2的适配器可以在slf4j上运行吗?

时间:2017-04-28 16:20:34

标签: java log4j slf4j log4j2

我有一个使用log4j2的第三方库(elasticsearch 5.x)。我的应用程序使用slf4j。是否有适用于log4j版本2的适配器,类似于版本1适配器(log4j-over-slf4j)?

只是为了澄清:我不想实际使用log4j或log4j2作为实际实现(绑定)。我使用logback。所以我需要一个log4j2到slf4j适配器,而不是slf4j绑定。

我还应该提一下,我已经找到并尝试过这个库(在2.0-beta版本中): https://logging.apache.org/log4j/2.0/log4j-to-slf4j/index.html 但它给了我这个错误:

<%!
    import sqlite3
    def data():
        return [(1,2,3,4,5), (1,2,3,4,5)]
%>
/**
 * Header file
 */
#define foo bar

% for row in data():
    { \
    % for col in row:
        ${col}, \
    % endfor
    }
% endfor

编辑:好的..所以我猜我昨天只是失明了,我只看到了这个库的测试版。因此,答案是有适配器等,它在这里:

https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-to-slf4j https://logging.apache.org/log4j/2.0/log4j-to-slf4j/index.html

最新版本目前为2.8.2

4 个答案:

答案 0 :(得分:2)

您应包含 log4j-to-slf4j-2.x.jar并确保不包含 log4j-slf4j-impl-2.x.jar。有关详细信息,请参阅Log4j to SLF4J Adapter

答案 1 :(得分:0)

我认为你可以选择两个库。你可以从: http://www.java2s.com/Code/Jar/l/Downloadlog4jjar.htm 要么 https://logging.apache.org/log4j/2.0/download.html或其他。

答案 2 :(得分:0)

来自https://logging.apache.org/log4j/2.0/faq.html

  

当应用程序调用Log4j 2 API并希望将日志记录调用路由到SLF4J实现时,可以使用log4j-to-slf4j适配器jar。

enter image description here

Slf4j项目不提供从log4j v2到Slf4j的桥接(https://www.slf4j.org/legacy.html中未提及)。

Maven依赖项:

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-to-slf4j</artifactId>
    <version>2.11.0</version>
</dependency>

等级依赖性:

compile "org.apache.logging.log4j:log4j-to-slf4j:2.10.0"

注意,上述软件包对以下内容具有传递依赖:

org.slf4j:slf4j-api:1.7.25
org.apache.logging.log4j:log4j-api:2.10.0

软件包列表:https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-to-slf4j

答案 3 :(得分:-1)

Log4j2本身捆绑了slf4j implementation(log4j-slf4j-impl-2.x.jar)

这是Log4j2 distribution中的一个罐子。

澄清问题后更新:

Log4j2包含log4j-to-slf4j bridge“。这是将Log4j2日志记录路由到另一个slf4j实现所需的。

提到的错误可能是版本不兼容的问题,但问题没有提到版本号,所以很难说。