Java slf4j&;log4j2 maven设置查询
我在我的项目中使用log4j2和slf4j&使用maven进行构建。我正在使用下面的pom文件(仅显示相关依赖项),但我在下面复制了这个pom文件的错误-知道我需要添加/删除什么才能让它工作吗。我已经访问了错误中的url以及log4j2依赖项页面,因此请不要只在响应中指向url 消息:Java slf4j&;log4j2 maven设置查询,java,maven,logging,slf4j,log4j2,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) l
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>
UTF-8
1.7.7
org.slf4j
slf4j api
${slf4j.version}
com.lmax
破坏者
3.2.0
org.apache.logging.log4j
log4japi
2.0.1
org.apache.logging.log4j
log4j型芯
2.0.1
更新:
我在pom文件中添加了以下依赖项,并在mavenrepository中看到了jar——尽管在运行mvn clean/install时仍然看到了相同的消息
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.0.1</version>
</dependency>
org.apache.logging.log4j
log4j-slf4j-impl
2.0.1
您的pom文件中似乎缺少以下内容
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.0.1</version>
</dependency>
org.apache.logging.log4j
log4j-slf4j-impl
2.0.1
您的log4j2配置是正确的(POM端),但您从不告诉slf4j它应该在哪里写入(后端部分)
您应该将其添加到pom文件中
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.0.1</version>
</dependency>
org.apache.logging.log4j
Log4j 2 SLF4J绑定允许编码到SLF4J API的应用程序使用Log4j 2作为实现
如果它仍然不起作用,您可能会遇到Eclipse问题,因为Eclipse m2e对于slf4j来说很奇怪。根据SO的这篇详细文章,解决方法可能是使用外部maven进行构建。除了log4j-slf4j-impl依赖之外,您还需要slf4j-ext依赖
请参见我认为您的第一个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>
org.slf4j
slf4j api
1.7.25
org.apache.logging.log4j
log4japi
2.7
org.apache.logging.log4j
log4j型芯
2.7
groupId应该是“org.apache.logging.log4j”和版本“2.0.1”,如下所述:我的错误-是,版本应该是2.0.1,不是beta版,也不是适配器组id@user3813256那么,如果答案没有解决问题,为什么要将其标记为正确答案呢?当我通过eclipse运行maven clean/install时,我仍然看到相同的消息。在我的maven repo-slf4j=api-1.7.7、log4j-slf4j-impl-2.0.1、log4j-api-2.0.1、log4j-core-2.0.1中,我似乎拥有所有的依赖项,但我在运行maven时得到了消息,并且没有生成日志文件输出。当我不使用maven,但在lib目录中有所有jar并使用eclipse进行构建时,我使用相同的log4j2xml文件获得文件输出path@user3813256:我希望这足够了,因为我不使用Eclipse,但我已经更新了我的答案,并引用了另一篇文章。我会尽快接受,只要我能核实-我认为你是对的,但我需要在我的电脑上证明-谢谢你的帮助!最后一列显示Optional=YES。