【发布时间】:2013-01-06 12:46:31
【问题描述】:
我在使用 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 中删除 slot
还有什么想法吗?
谢谢
【问题讨论】:
标签: java logging jboss log4j jboss7.x