slf4j 1.7.7上的log4j 2.0.2无法在启动时找到log4j.xml?

时间:2014-10-24 16:48:07

标签: log4j slf4j log4j2

我试图让slf4j 1.7.7使用log4j 2.0.2作为其实现。我想我的WAR中有所有必需的JAR,而log4j.xml只是被放到classes目录中,但是当我的webapp启动时,它找不到log4j.xml。当我打开WAR时,我可以在WEB-INF / classes中看到它,所以它应该在类路径上。我错过了什么?

meta-inf/manifest.mf
index.html
...
WEB-INF/web.xml
WEB-INF/classes/log4j.xml
...
WEB-INF/lib/log4j-api-2.0.2.jar
...
WEB-INF/lib/slf4j-api-1.7.7.jar
...
WEB-INF/lib/log4j-core-2.0.2.jar
WEB-INF/lib/log4j-slf4j-impl-2.0.2.jar
...

Jetty在其stderrout.log文件中有这个,记录它的失望......

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

1 个答案:

答案 0 :(得分:0)

那很微妙。 log4j-core-2.0.2并没有寻找log4j.xml,它正在寻找log4j2.xml。 FAQ页面http://logging.apache.org/log4j/2.x/faq.html以粗体显示"默认情况下,Log4j在类路径中查找名为log4j2.xml(不是log4j.xml)的配置文件。"将我的文件重命名为log4j2.xml可以找到它。现在我必须纠正它。

2014-10-24 10:34:53,542 ERROR Unknown object "property" of type org.apache.logging.log4j.core.config.Property is ignored.
2014-10-24 10:34:53,545 ERROR Unknown object "logger" of type org.apache.logging.log4j.core.config.LoggerConfig is ignored.
2014-10-24 10:34:53,546 ERROR Unknown object "root" of type org.apache.logging.log4j.core.config.LoggerConfig is ignored.