我在使用我的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