我有这个瘦小的战争EAR文件。它应该包含在WildFly 8.2.0.Final应用程序服务器中。
- lib
- log4j-api-2.1.jar
- log4j-core-2.1.jar
- META-INF
- application.xml
- jboss-app.xml
- log4j2.xml
- MANIFEST.MF
- my-ejb.jar
- my-web.war (skinny war)
- META-INF
- MANIFEST.MF
- WEB-INF
- classes
- ...
- lib (empty since skinny war)
- index.html
当我第一次开始从my-web.war
开始记录时,我不断收到此消息:2015-03-04 11:04:22,806 ERROR [stderr] (default task-23) ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
并且没有消息添加到我的日志文件中。
但是,当我从my-ejb.jar
开始登录时,我完全没有问题,而my-web.war
的后续记录也正常。
如何在我的EAR文件中正确使用/配置log4j2,以便我不必关心首先调用我的ejb文件?
文件,根据要求:
MY-ejb.jar / META-INF / MANIFEST.MF:
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: Olivier
Class-Path: lib/log4j-api-2.1.jar lib/guava-18.0.jar lib/log4j-core-2.
1.jar lib/log4j-web-2.1.jar
Created-By: Apache Maven 3.2.3
Build-Jdk: 1.8.0_25
MY-web.war中/ META-INF / MANIFEST.MF
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: Olivier
Class-Path: lib/log4j-api-2.1.jar lib/guava-18.0.jar lib/log4j-core-2.
1.jar lib/log4j-web-2.1.jar
Created-By: Apache Maven 3.2.3
Build-Jdk: 1.8.0_25
答案 0 :(得分:0)
log4j2.xml
文件必须位于类路径中才能找到。
试着把它放在这里:
my-web.war
WEB-INF
classes
log4j2.xml
答案 1 :(得分:-1)
my-ejb.jar MANIFEST.MF是否包含log4j jar的相对类路径?如果您想使用自己的log4j配置,请将文件log4j2.xml放到耳朵的根部,并将jboss-app.xml放到耳朵的META-INF文件夹中,并附上以下内容:
<jboss-app>
<loader-repository>
org.myapp:loader=MyClassLoader
<loader-repository-config>
java2ParentDelegation=false
</loader-repository-config>
</loader-repository>
</jboss-app>