SLF4J和Log4j 2绑定Maven依赖项

史蒂夫·阿特金森

希望有一个简单的问题,但我的Google foo无法让我失败-我有一个Maven项目,我们在其中使用带有Log4J 1.2绑定的SLF4J。

现在,我们特别想提高性能来迁移到Log4j 2-但是,我一生无法找到log4j 2.0绑定的maven依赖项。我在http://logging.apache.org/log4j/2.x/log4j-slf4j-impl/中找到了一些注释,但没有提及任何依赖项信息。

我也为这个事实感到有些困惑,显然有两种方法可以将slf4j放在log4j2之上(绑定或适配器)

将slf4j与log4j2绑定的正确方法是什么?如何定义Maven依赖项?

编辑下面的第一个答案添加一些代码,我得到异常:

线程“主”中的异常java.lang.NoSuchMethodError:org / apache / logging / log4j / spi / AbstractLoggerWrapper。(Lorg / apache / logging / log4j / spi / AbstractLogger; Ljava / lang / String;)V在org.slf4j。 impl.SLF4JLogger。(SLF4JLogger.java:48)

POM:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>logging.test</groupId>
<artifactId>logtest2</artifactId>
<version>0.0.1</version>
<name>logtest2</name>
<description>logtest2</description>
<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.5</version>
    </dependency>

    <dependency>
        <groupId>org.apache.logging.log4j.adapters</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.0-beta3</version>
    </dependency>

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.0-beta9</version>
    </dependency>

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.0-beta9</version>
    </dependency>
</dependencies>

我的log4j.xml:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="A1" class="org.apache.log4j.FileAppender">
        <param name="File" value="c:/logtest2.0/log.txt" />
        <param name="Append" value="false" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %p %X{sessionId} %c MSG: %m%n" />
        </layout>
    </appender>
    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %p %X{sessionId} %c MSG: %m%n" />
        </layout>
    </appender>
    <category name="org.apache.log4j.xml">
        <priority value="debug" />
        <appender-ref ref="A1" />
    </category>
    <root>
        <priority value="debug" />
        <appender-ref ref="STDOUT" />
    </Root> </log4j:configuration>

和我的测试Java类:

package loggertest;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LoggerTest {

    public static final Logger LOGGER = LoggerFactory.getLogger(LoggerTest.class);

    public static void main(final String[] p_args) throws InterruptedException {
        LOGGER.debug("Logger test");
    }
}
做过
"org.apache.logging.log4j:log4j-slf4j-impl:2.0-beta9" - 
            LOG4J implementation of SLF4J API
"org.apache.logging.log4j:log4j-core:2.0-beta9" - Core LOG4J implementation

这加上类路径上的有效log4j2.xml应该可以帮助您入门。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

类路径包含多个SLF4J绑定,后退经典和log4j

来自分类Dev

类路径包含多个SLF4J绑定,log back-classic和log4j

来自分类Dev

Log4j 2 SLF4J绑定和Log4j 2到SLF4J适配器之间有什么区别

来自分类Dev

我是否需要SLF4J绑定和适配器才能用于log4j?

来自分类Dev

我是否需要SLF4J绑定和适配器才能用于log4j?

来自分类Dev

如何排除多个SLF4J绑定到LOG4J

来自分类Dev

码头和slf4j依赖

来自分类Dev

slf4j和log4j2 maven设置查询

来自分类Dev

使用slf4j和log4j2

来自分类Dev

Log4j2 / SLF4J和Java 11

来自分类Dev

Struts 2拦截器中的Log4j(SLF4J)MDC上下文

来自分类Dev

如何使用SLF4J和Log4j2记录致命(或任何自定义日志级别)

来自分类Dev

没有使用 log4j2 和 slf4j 的控制台输出

来自分类Dev

slf4j simplelogger的Maven和属性

来自分类Dev

Maven SLF4J:类路径包含多个SLF4J绑定

来自分类Dev

slf4j的绑定错误

来自分类Dev

slf4j的绑定错误

来自分类Dev

SLF4J 多重绑定

来自分类Dev

如何配置Gradle应用程序以将SLF4J与Log4J 2实现一起使用?

来自分类Dev

如何配置Gradle应用程序以将SLF4J与Log4J 2实现一起使用?

来自分类Dev

如何将Log4j(1或2)配置为在针对Slf4j进行编码时使用自定义日志文件名

来自分类Dev

将slf4j与Maven集成

来自分类Dev

log4j2 slf4j仅记录错误

来自分类Dev

slf4j + log4j2 不写入文件

来自分类Dev

使用 slf4j 作为 log4j2 的抽象

来自分类Dev

为什么向 slf4j-log4j12 添加依赖项不能使 slf4j 正常工作?

来自分类Dev

Gradle和SLF4J拒绝排除传递依赖项导致IllegalStateException

来自分类Dev

Apache Storm:SLF4J:类路径包含多个SLF4J绑定

来自分类Dev

在Eclipse RCP中如何在slf4j 1.7.7上使用log4j 2.1.0?获取“ ERROR StatusLogger Log4j2找不到日志记录实现。”

Related 相关文章

  1. 1

    类路径包含多个SLF4J绑定,后退经典和log4j

  2. 2

    类路径包含多个SLF4J绑定,log back-classic和log4j

  3. 3

    Log4j 2 SLF4J绑定和Log4j 2到SLF4J适配器之间有什么区别

  4. 4

    我是否需要SLF4J绑定和适配器才能用于log4j?

  5. 5

    我是否需要SLF4J绑定和适配器才能用于log4j?

  6. 6

    如何排除多个SLF4J绑定到LOG4J

  7. 7

    码头和slf4j依赖

  8. 8

    slf4j和log4j2 maven设置查询

  9. 9

    使用slf4j和log4j2

  10. 10

    Log4j2 / SLF4J和Java 11

  11. 11

    Struts 2拦截器中的Log4j(SLF4J)MDC上下文

  12. 12

    如何使用SLF4J和Log4j2记录致命(或任何自定义日志级别)

  13. 13

    没有使用 log4j2 和 slf4j 的控制台输出

  14. 14

    slf4j simplelogger的Maven和属性

  15. 15

    Maven SLF4J:类路径包含多个SLF4J绑定

  16. 16

    slf4j的绑定错误

  17. 17

    slf4j的绑定错误

  18. 18

    SLF4J 多重绑定

  19. 19

    如何配置Gradle应用程序以将SLF4J与Log4J 2实现一起使用?

  20. 20

    如何配置Gradle应用程序以将SLF4J与Log4J 2实现一起使用?

  21. 21

    如何将Log4j(1或2)配置为在针对Slf4j进行编码时使用自定义日志文件名

  22. 22

    将slf4j与Maven集成

  23. 23

    log4j2 slf4j仅记录错误

  24. 24

    slf4j + log4j2 不写入文件

  25. 25

    使用 slf4j 作为 log4j2 的抽象

  26. 26

    为什么向 slf4j-log4j12 添加依赖项不能使 slf4j 正常工作?

  27. 27

    Gradle和SLF4J拒绝排除传递依赖项导致IllegalStateException

  28. 28

    Apache Storm:SLF4J:类路径包含多个SLF4J绑定

  29. 29

    在Eclipse RCP中如何在slf4j 1.7.7上使用log4j 2.1.0?获取“ ERROR StatusLogger Log4j2找不到日志记录实现。”

热门标签

归档