slf4j& log4j2 maven设置查询

时间:2014-08-19 14:56:20

标签: java maven logging slf4j log4j2

我在我的项目中使用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>

4 个答案:

答案 0 :(得分:18)

您似乎错过了pom文件中的以下内容。

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

答案 1 :(得分:7)

你的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绑定。根据{{​​3}} Log4j 2 SLF4J Binding允许编码为SLF4J API的应用程序使用Log4j 2作为实现

如果它仍然不起作用,则可能存在Eclipse问题,因为已知Eclipse m2e对于slf4j很奇怪。根据SO Log4j 2 SLF4J Binding documentation的详细帖子,解决方法可能是使用外部maven进行构建。

答案 2 :(得分:1)

除了log4j-slf4j-impl依赖项之外,还需要slf4j-ext依赖项。

请参阅http://logging.apache.org/log4j/2.x/log4j-slf4j-impl/dependencies.html

答案 3 :(得分:0)

我认为您的第一个pom.xml是正确的,(依赖关系是正确的),也许配置文件位置错误

pom.xml

      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.25</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.7</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.7</version>
    </dependency>