我在使用我的XML log4j配置文件中定义的appender进行日志记录时遇到了问题。在JBoss 7.1.1下使用应用程序的Log4J配置
我在我的EAR的META-INF文件夹中创建了jboss-deployment-structure.xml,但没有成功。
的JBoss的部署,structure.xml结构为:
<jboss-deployment-structure>
<ear-subdeployments-isolated>false</ear-subdeployments-isolated>
<deployment>
<exclusions>
<module name="org.apache.log4j" slot="main"/>
</exclusions>
</deployment>
</jboss-deployment-structure>
我甚至想修改我的standalone.conf.bat文件中添加以下行:
set "JAVA_OPTS=%JAVA_OPTS% -Dorg.jboss.as.logging.per-deployment=false"
我的应用程序部署是这样的:
-> MyAppEAR.ear
-> META-INF
-> MANIFEST.MF
-> MyAoo.war
-> META-INF
-> MANIFEST.MF
-> jboss-deployment-structure.xml
-> WEB-INF
-> web.xml
-> lib
-> log4j-1.2.17.jar
-> ---
-> classes
-> log4j.xml
-> ...
我注意到以下错误:
- JBoss的部署,structure.xml在子部署忽略。 jboss-deployment-structure.xml仅针对顶级部署进行解析。
我甚至尝试从JBOSS 7.1.0迁移到7.1.1
一些帮助,请!
感谢
感谢repply詹姆斯。
我没有你所说的话和移动JBoss的部署,structure.xml文件MyAppEAR.ear/META-INF。
我注意到,这样的例外:
jboss-deployment-structure.xml in subdeployment ignored. jboss-deployment-structure.xml is only parsed for top level deployments.
...不会发生。我不知道这是否意味着文件被解析了......我怎么知道?
尽管存在这种新行为,我的log4j.xml配置文件仍未加载,并且使用的记录器仍然是Log4J的。
我知道这becaused我写信给控制台:
System.out.println(Logger.getRootLogger().getClass().toString())
...并得到了:
class org.jboss.logmanager.log4j.BridgeLogger
我也试过:
- 移动我的的log4j .xml至MyAppEAR.ear/META-INF。
- 删除不必要的-Dorg.jboss.as.logging。每部署=假从standalone.conf.bat
- 去除插槽从我JBoss的部署,structure.xml
任何更多的想法?
感谢
谢谢gYanl!这工作!我甚至不需要所有这些步骤。我所做的只是在EAR的META-INF文件夹中创建jboss-deployment-structure.xml。 – RedEagle