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

使用Log4j2 1.2 API调用Logger.getLogger引发数组越界异常

使用Log4j2 1.2 API调用Logger.getLogger引发数组越界异常

看起来你遇到的问题是升级ActiveMQ后,Log4j2的1.2桥接组件解析旧格式配置文件时触发的异常,核心原因是配置文件里的笔误,再加上Log4j2与原生Log4j 1.x解析逻辑的差异导致的。

问题分析

从栈跟踪来看,异常出现在PropertiesUtil.partitionOnCommonPrefixes方法的字符串截取操作,错误信息begin 0, end -1说明Log4j2在解析配置项的key时,找不到预期的分隔符来拆分前缀和后缀,最终触发数组越界。

对照你提供的log4j.properties,发现了一个明显的格式错误:

# 错误的配置项(缺少了一个点.)
log4j.appender.defaultAppenderlayout=org.apache.log4j.PatternLayout

正确的写法应该是在defaultAppender和layout之间加一个点:

# 正确的配置项
log4j.appender.defaultAppender.layout=org.apache.log4j.PatternLayout

你之前使用activemq-all 5.16.3时,依赖的是原生Log4j 1.x,它的配置解析器对这类格式错误的容忍度更高——可能直接忽略这个无效配置项,或者默认使用PatternLayout,所以日志能正常工作。但升级到activemq-client 5.18.6后,你切换到了Log4j2的1.2桥接组件(log4j-1.2-api),它的配置解析逻辑更严格,遇到格式不符合预期的key时,就会触发这个字符串截取异常。

另外,ActiveMQ升级后依赖的Log4j相关组件版本变化,也和这个异常的触发有间接关系。

修复步骤

  1. 修正配置文件的笔误
    打开${CFG_DIR}/log4j.properties,把上面提到的错误配置项改成正确格式,这是解决当前异常的核心操作。修正后的配置片段应该是:

    log4j.rootLogger=WARN,defaultAppender
    log4j.appender.defaultAppender=org.apache.log4j.RollingFileAppender
    log4j.appender.defaultAppender.MaxFileSize=20MB
    log4j.appender.defaultAppender.MaxBackupIndex=25
    # 修正后的行
    log4j.appender.defaultAppender.layout=org.apache.log4j.PatternLayout
    log4j.appender.defaultAppender.layout.ConversionPattern=[%d{yy-MM-dd HH:mm:ss.SSS}] %20C{3}:%L [%-6.6p] => %m%n
    log4j.appender.defaultAppender.append=true
    
  2. 检查依赖冲突
    确认项目中没有同时引入Log4j 1.x和Log4j2的核心组件,避免版本冲突。如果用Maven管理依赖,可以执行以下命令查看依赖树:

    mvn dependency:tree | grep log4j
    

    确保只有log4j-core、log4j-api、log4j-1.2-api这几个Log4j2相关的依赖存在,没有旧版的log4j(1.x)jar包。

  3. 验证配置加载路径
    可以在启动时临时添加系统属性打印,确认${CFG_DIR}已经被正确替换为实际的配置目录,比如在启动参数中加入:

    -Dorg.apache.logging.log4j.simplelog.StatusLogger.level=TRACE
    

    这样可以看到Log4j2加载配置的详细过程,确保加载的是你指定的log4j.properties文件。

如果修正笔误后仍然有问题,可以尝试显式指定Log4j2的配置路径(即使是1.x格式的配置),在启动参数中添加:

-Dlog4j2.configurationFile=file:${CFG_DIR}/log4j.properties

备注:内容来源于stack exchange,提问作者Codes with Hammer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 11:49:35