我的应用程序日志记录存在问题。应用程序使用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中删除它也不会生成日志?
请告诉我如何解决日志未生成的问题。
答案 0 :(得分:1)
首先,你走在正确的轨道上。您需要使用POM来排除slf4j-log4j12和commons-logging。
iml文件是由Intelli生成的,你需要让intellij重新导入pom来更新依赖项。最好的办法是在pom.xml发生变化时将intellij设置为始终自动重新导入。