我有7个不同的WAR部署到同一WildFly / JBoss服务器。每个WAR在核心设计和Log4j配置上都是相同的。每个WAR通过其自己的自定义log4j.xml生成自己的日志文件。每个日志都写入一个单独的文件夹。
7个部署的WAR中的1个不断使日志记录被WildFly的console.log劫持。在初始化期间,它将开始写入自己的日志5-10行,然后停止;其余的日志记录将定向到console.log。
如果在发生这种情况后重新安装WAR,它将同时写入其自己的单独日志和WildFly console.log。如果我重新启动WildFly,它将按照前面所述的方式工作-开始记录到其自己的日志,然后在console.log上继续。
与其他6个相比,该WAR唯一的独特之处是该项目使用JAXB。没有其他WAR使用JAXB。
JAXB与Log4j和WildFly之间是否存在某种未知的交互作用,可能会导致这种情况?我怀疑,但尚不能证明,劫持事件是在Java加载使用JAXB的类之后发生的ClassLoader。
jboss-7.2.0.Final,jdk-7u80x64,Log4j-1.2.13.jar
答案 0 :(得分:0)
您可能需要尝试将logging.properties文件移动到WAR / WEB-INF / classes。我猜是旧的Jboss EAP 6.4,它可能无法在WAR / WEB-INF目录中查找。
如果这不起作用,则必须为org.jboss.as.logging打开跟踪日志记录,该日志记录应显示在部署中找到logging.properties文件。
以下CLI命令将启用跟踪日志记录,以查看日志记录子系统正在执行的操作的详细信息。
/subsystem=logging/logger=org.jboss.as.logging:add(level=TRACE)
如果要在控制台上查看这些日志消息,则需要为控制台工具启用跟踪日志记录。
/subsystem=logging/console-handler=CONSOLE:write-attribute(name=level, value=TRACE)
资源:
答案 1 :(得分:0)
通过通过/WEB-INF/jboss-deployment-structure.xml
从应用程序中排除log4j模块来解决
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="org.apache.log4j" />
</exclusions>
</deployment>
</jboss-deployment-structure>