slf4j & log4j2 maven setup query

2022-09-01 13:12:32

我在我的项目中使用log4j2和slf4j,并使用maven进行构建。我正在使用以下pom文件(仅显示相关的依赖项),但是我收到了与此pom文件一起复制的错误 - 任何想法我需要添加/删除什么才能使其工作。我已经访问了错误中的URL以及log4j2依赖项页面,因此请不要仅指向响应中的URL。

消息:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

pom 文件

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <slf4j.version>1.7.7</slf4j.version>
</properties>

   <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
    </dependency>


    <dependency>
        <groupId>com.lmax</groupId>
        <artifactId>disruptor</artifactId>
        <version>3.2.0</version>
    </dependency>

     <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.0.1</version>
     </dependency>

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

更新:我将以下依赖项添加到我的pom文件中,并在我的mavenrepository中看到了jar - 尽管当我运行mvn clean/install时,我仍然看到相同的消息

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.0.1</version>
    </dependency>

答案 1

您似乎从pom文件中遗漏了以下内容。

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.0.1</version>
</dependency>

答案 2

您的log4j2配置正确(POM端),但您从未对slf4j说它应该写入的位置(后端部分)。

你应该把它添加到你的pom文件中

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.0.1</version>
</dependency>

它是Log4j 2 SLF4J绑定。根据 Log4j 2 SLF4J 绑定文档 Log4j 2 SLF4J 绑定允许编码到 SLF4J API 的应用程序使用 Log4j 2 作为实现

如果它仍然不起作用,你可能有一个Eclipse问题,因为众所周知,Eclipse m2e在slf4j方面很奇怪。根据SO SLF4J的这篇详细文章:无法加载类“org.slf4j.impl.StaticLoggerBinder”.错误,解决方法可能是使用外部maven来执行构建。


推荐