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

关于Sonar缺失日志参数检测规则的问询:该规则去向何方?

关于Sonar日志缺失参数检测规则的说明

Yep, you're absolutely right—there's definitely a Sonar rule that catches mismatched log placeholders and arguments, exactly like the issue in your sample code!

规则详情

  • 规则ID: java:S2629
  • 规则名称: Logging arguments should match format string
  • 检测场景: 它会扫描各类日志语句(比如LOG.info()、LOG.error()等),检查格式化字符串中的占位符(比如{})数量和实际传入的参数数量是否匹配。像你给出的示例:
    LOG.info( "Sonar issue {}{}{}", "Missing", "1 parameter" );
    
    这里3个占位符却只传了2个参数,正好会触发这个规则的告警。

当前状态

这个规则目前是SonarQube Java规则集中的活跃规则,一直处于维护状态。如果你之前用过但现在找不到了,可能是这几种情况:

  • SonarQube版本更新后,规则的名称或描述有微调,但核心检测逻辑没变;
  • 你的SonarQube实例中没有启用这个规则(可以在规则库中搜索java:S2629来找到并启用它);
  • 如果你用的是SonarLint,确保插件是最新版本,且该规则已开启。

另外,这个规则还会覆盖其他类似问题:比如参数数量多于占位符、参数类型和占位符不兼容(比如用%d却传入字符串)等日志格式化错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 03:48:40