我在使用 XML log4j 配置文件中定义的附加程序进行日志记录时遇到问题。
我在EAR 的 META-INF 文件夹上创建了jboss-deployment-structure.xml ,但没有成功。
jboss-deployment-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-deployment-structure.xml 被忽略。jboss-deployment-structure.xml 仅针对顶级部署进行解析。
我什至尝试从 JBOSS 7.1.0 迁移到 7.1.1
请帮忙!
谢谢
感谢詹姆斯的回复。
我照你说的做了,把jboss-deployment-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 的。
我知道这是因为我写信给控制台:
System.out.println(Logger.getRootLogger().getClass().toString())
...并得到:
class org.jboss.logmanager.log4j.BridgeLogger
我也试过:
- 将我的log4j.xml移动到MyAppEAR.ear/META-INF。
- 从standalone.conf.bat中删除不必要的-Dorg.jboss.as.logging.per-deployment=false
- 从我的jboss-deployment-structure.xml 中删除插槽
还有什么想法吗?
谢谢