You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Wildfly 15部署Log4j2日志的JEE应用失败求助

Troubleshooting Log4j2 Logging Issues on WildFly 15

I’ve run into nearly identical issues setting up Log4j2 on WildFly 15 before—let’s walk through targeted fixes and diagnostic steps to get your logging working properly:

First, Verify Deployment Structure Configuration

WildFly’s module system enforces strict classpath isolation, so your application needs explicit access to the Log4j2 modules you added. Create a jboss-deployment-structure.xml file (place it in WEB-INF for WARs or META-INF for EARs) with these entries:

<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <module name="org.apache.log4j2" export="true"/>
            <module name="org.jboss.log4j2.logmanager" export="true"/>
        </dependencies>
        <!-- Exclude WildFly's default logging subsystem to avoid conflicts -->
        <exclude-subsystems>
            <subsystem name="logging"/>
        </exclude-subsystems>
    </deployment>
</jboss-deployment-structure>

Fix Module Dependencies & Service Visibility

Your current module configurations have a few gaps that prevent the JBossProvider from being detected:

  1. Update org.apache.log4j2 module.xml: Add basic API dependencies to ensure compatibility:

    <module xmlns="urn:jboss:module:1.8" name="org.apache.log4j2">
        <resources>
            <resource-root path="log4j-api.jar"/>
        </resources>
        <dependencies>
            <module name="javax.api"/>
        </dependencies>
    </module>
    
  2. Adjust org.jboss.log4j2.logmanager module.xml: Ensure you import services from org.jboss.logmanager and add required logging dependencies:

    <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" services="import"/>
            <module name="org.jboss.logging"/>
        </dependencies>
        <provides>
            <service name="org.apache.logging.log4j.spi.Provider">
                <with-class name="org.jboss.logmanager.log4j.JBossProvider" />
            </service>
        </provides>
    </module>
    
  3. Check org.jboss.logmanager module dependencies: Confirm it exports the Log4j2 bridge module to make the provider visible system-wide:

    <module xmlns="urn:jboss:module:1.8" name="org.jboss.logmanager">
        <!-- Keep existing resources and dependencies -->
        <dependencies>
            <!-- Add this line -->
            <module name="org.jboss.log4j2.logmanager" services="export"/>
        </dependencies>
    </module>
    

Validate Version Compatibility

Mismatched versions between log4j-api.jar and log4j2-jboss-logmanager.jar are a common culprit. Ensure:

  • Your log4j-api version is compatible with the log4j2-jboss-logmanager build you’re using (e.g., Log4j2 2.17.x pairs with log4j2-jboss-logmanager 1.1.x releases).
  • Remove any Log4j2-related JARs from your application’s WEB-INF/lib—these will conflict with WildFly’s module-provided versions.

Enable Module Debugging for Deep Diagnostics

If issues persist, start WildFly with module debugging enabled to trace how modules and services are loaded:

./standalone.sh -Djboss.modules.debug=true

Look for logs related to org.apache.logging.log4j.spi.Provider—you’ll see if the JBossProvider is being detected or if there’s a classpath conflict blocking it.

Clean WildFly Cache

Always clear WildFly’s cache after modifying modules to ensure fresh loading:

  • Delete contents of standalone/data/content and standalone/tmp
  • Restart WildFly and redeploy your application

内容的提问来源于stack exchange,提问作者stmoebius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 18:57:49