ch.qos.logback.classic和slf4j-log4j12

时间:2014-07-06 15:28:07

标签: java maven slf4j logback

我的应用程序日志记录存在问题。应用程序使用slf4j和logback机制来实现日志记录。

记录器初始化为

private static final Logger LOG = LoggerFactory.getLogger(Classname.class);

但有些人无法生成日志。在调试过程中我发现了错误

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/Users/xxx/.m2/repository/org/slf4j/slf4j-log4j12/1.7.5/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/Users/xxx/.m2/repository/ch/qos/logback/logback-classic/1.0.13/logback-classic-1.0.13.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]

然后我尝试从应用程序分组的父pom.xml文件中删除slf4j-log4j12绑定。但仍然无法生成日志。

然后我在应用程序iml文件中找到了以下条目

<orderEntry type="library" scope="RUNTIME" name="Maven: org.slf4j:slf4j-log4j12:1.7.5" level="project" />

当我删除条目时,我的应用程序能够生成日志...目前我没有任何线索abt使用哪个文件作为参考iml文件生成?因此,如果我在pom.xml中将其删除,我需要将slf4j-log4j12排除在内置到我的项目中吗?

即使我在pom.xml中删除它也不会生成日志?

请告诉我如何解决日志未生成的问题。

1 个答案:

答案 0 :(得分:1)

首先,你走在正确的轨道上。您需要使用POM来排除slf4j-log4j12和commons-logging。

iml文件是由Intelli生成的,你需要让intellij重新导入pom来更新依赖项。最好的办法是在pom.xml发生变化时将intellij设置为始终自动重新导入。