似乎有一个新规则可用于最新版本。 我有几个问题报告为" Printf样式的格式字符串应该正确使用(squid:S3457)"
我不理解my case中的说明和错误:
LOGGER.info("Checking for client process pid: {0}", parentProcessId);
// issue: String contains no format specifiers
在规则说明中我们有:
java.util.Logger logger;
logger.log(java.util.logging.Level.SEVERE, "Result {0}.", myObject.toString()); // Noncompliant; no need to call toString() on objects
logger.log(java.util.logging.Level.SEVERE, "Result.", new Exception()); // compliant, parameter is an exception
logger.log(java.util.logging.Level.SEVERE, "Result '{0}'", 14); // Noncompliant {{String contains no format specifiers.}}
和
java.util.Logger logger;
logger.log(java.util.logging.Level.SEVERE, "Result {0}.", myObject);
logger.log(java.util.logging.Level.SEVERE, "Result {0}'", 14);
与我的案件有何不同? 你能帮我理解写它的正确方法吗?
答案 0 :(得分:4)
了解我的错误,使用slf4j logger,{}需要使用而不是{0}
答案 1 :(得分:1)
不兼容的代码示例
logger.info(“ Query:”,query);
LOGGER.info(“查询:{0}”,查询); //问题:字符串不包含格式说明符
兼容解决方案
LOGGER.info(“查询:{}”,查询);