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

使用Slf4j/Log4jLogger占位符时出现NumberFormatException异常如何解决

核心原因

你当前使用的日志实现为JBoss Resteasy自带的org.jboss.resteasy.logging.impl.Log4jLogger,该类的日志格式化逻辑基于JDK的java.text.MessageFormat实现,不支持SLF4J风格的无序号占位符{}。

报错根由

MessageFormat要求占位符必须填写对应参数的索引序号,格式为{0}、{1}、{2},依次对应传入的第1、2、3个参数。你代码中使用的空占位符{}在解析时会被识别为参数序号为空字符串,无法转换为数字,因此抛出NumberFormatException异常。

解决方案

  • 方案1:调整日志占位符写法适配MessageFormat规则,修改代码为:
LOG.info("Info message: {0}", "some message")
  • 方案2:如果项目整体遵循SLF4J日志规范,可修改Resteasy的日志绑定配置,强制使用SLF4J实现替换Resteasy自带的Log4jLogger,调整完成后即可正常使用{}格式的无序号占位符。

内容的提问来源于stack exchange,提问作者eldar.j

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 08:15:03