我正在开发一个使用 log4j2 进行日志记录的 JEE 应用程序。我正在尝试在 Wildfly 15 上部署它,但我无法让它正确记录,说明
Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
这是我所做的:
- 我使用简单的 module.xml 将 log4j2-api.jar 作为系统模块添加到 Wildfly (system/layers/base/org/apache/log4j2/main)。
- 我从https://github.com/jboss-logging/log4j2-jboss-logmanager获取代码,构建了一个 JAR,并将其作为系统模块添加到 Wildfly(system/layers/base/org/jboss/log4j2 /logmanager/main),带有定义所提供服务的 module.xml:
<provides>
<service name="org.apache.logging.log4j.spi.Provider">
<with-class name="org.jboss.logmanager.log4j.JBossProvider" />
</service>
</provides>
- 我已将 org.apache.log4j2 和 org.jboss.log4j2.logmanager 作为依赖项添加到 org.jboss.logmanager 模块,说明
services="export"
后者。
我知道https://issues.redhat.com/browse/WFCORE-482,但我似乎无法从中得出正确的结论。
谁能帮助或知道如何进一步诊断这里发生了什么?
如需完整参考,org.jboss.log4j2.logmanager 的 module.xml 如下所示:
<module xmlns="urn:jboss:module:1.8" name="org.jboss.log4j2.logmanager">
<resources>
<resource-root path="log4j2-jboss-logmanager.jar"/>
</resources>
<dependencies>
<module name="org.apache.log4j2"/>
<module name="org.jboss.logmanager"/>
</dependencies>
<provides>
<service name="org.apache.logging.log4j.spi.Provider">
<with-class name="org.jboss.logmanager.log4j.JBossProvider" />
</service>
</provides>
</module>
…尽管我尝试将 org.jboss.logmanager 引用为 org.jboss.log4j2.logmanager 的依赖项,反之亦然。
org.apache.log4j2 的 module.xml 如下所示:
<module xmlns="urn:jboss:module:1.1" name="org.apache.log4j2">
<resources>
<resource-root path="log4j-api.jar"/>
</resources>
</module>