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

Windows服务器上JBoss 7.1.1.Final的Apache Log4j升级求助

升级JBoss 7.1.1.Final中的Log4j详细指南

前提说明

Log4j 1.x官方已停止维护,最新官方安全版本为log4j-1.2.17.jar(修复了CVE-2021-4104等漏洞,但仍存在部分未修复风险)。若要彻底解决Log4j漏洞问题,建议升级至Log4j 2.x(官方长期支持版本),但需调整JBoss的日志模块配置。以下提供两种升级方案:


方案一:升级至Log4j 1.x最新安全版本(快速适配)

步骤1:备份原有文件

  • 停止JBoss服务器,避免文件被占用。
  • 备份E:\jboss-7.1.1\modules\org\apache\log4j\main路径下的两个文件:
    • log4j-1.2.16.jar
    • module.xml

步骤2:替换JAR包

  • 下载log4j-1.2.17.jar,将其放入E:\jboss-7.1.1\modules\org\apache\log4j\main路径下,删除原有的log4j-1.2.16.jar。

步骤3:修改module.xml配置

  • 打开module.xml,找到如下配置段:
<resource-root path="log4j-1.2.16.jar"/>
  • 将path属性值修改为log4j-1.2.17.jar,保存文件。

步骤4:验证升级

  • 启动JBoss服务器,查看启动日志,确认无ClassNotFoundException或NoClassDefFoundError等报错。
  • 检查应用程序的日志输出是否正常,确保日志功能未受影响。

方案二:升级至Log4j 2.x(彻底解决漏洞,推荐)

Log4j 2.x是官方长期支持版本,修复了所有已知Log4j漏洞,但需要调整JBoss的日志模块配置:

步骤1:备份原有模块

  • 停止JBoss服务器,备份E:\jboss-7.1.1\modules\org\apache\log4j整个目录。

步骤2:准备Log4j 2.x依赖包

下载以下JAR包(以最新稳定版2.20.0为例):

  • log4j-api-2.20.0.jar
  • log4j-core-2.20.0.jar
  • log4j-1.2-api-2.20.0.jar(用于兼容Log4j 1.x的API调用)

将这些JAR包放入E:\jboss-7.1.1\modules\org\apache\log4j\main路径下,删除原有的log4j-1.2.16.jar。

步骤3:更新module.xml配置

替换原有module.xml内容为以下配置(注意修改JAR包版本号为你下载的版本):

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="org.apache.log4j">
    <resources>
        <resource-root path="log4j-api-2.20.0.jar"/>
        <resource-root path="log4j-core-2.20.0.jar"/>
        <resource-root path="log4j-1.2-api-2.20.0.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.servlet.api" optional="true"/>
        <module name="javax.transaction.api" optional="true"/>
    </dependencies>
</module>

步骤4:配置Log4j 2.x日志文件

  • 在E:\jboss-7.1.1\standalone\configuration(或domain配置目录)下创建log4j2.xml配置文件,示例配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
        <RollingFile name="File" fileName="${jboss.server.log.dir}/server.log"
                     filePattern="${jboss.server.log.dir}/server.%d{yyyy-MM-dd}.log">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
            </Policies>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="INFO">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="File"/>
        </Root>
    </Loggers>
</Configuration>

步骤5:修改JBoss启动参数

  • 编辑E:\jboss-7.1.1\bin\standalone.conf.bat(或domain.conf.bat),添加以下参数:
set "JAVA_OPTS=%JAVA_OPTS% -Dlog4j.configurationFile=file:///%JBOSS_HOME%/standalone/configuration/log4j2.xml"
set "JAVA_OPTS=%JAVA_OPTS% -Dorg.jboss.as.logging.per-deployment=false"

此步骤用于让JBoss使用Log4j 2.x配置,而非原生日志系统。

步骤6:验证升级

  • 启动JBoss服务器,检查启动日志是否正常加载Log4j 2.x,无报错信息。
  • 测试应用程序的日志输出,确认日志按照log4j2.xml的配置格式生成。

注意事项

  • 升级前务必备份相关文件,避免操作失误导致服务不可用。
  • 若应用程序直接依赖Log4j 1.x的特定API,升级至Log4j 2.x时需验证应用兼容性(log4j-1.2-api包可兼容大部分1.x API,但部分特殊用法可能需要调整)。
  • 定期关注Log4j官方安全公告,及时更新至最新受支持版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 14:31:09