log.info不报错也不打印变量内容原因:缺少占位符 { }
起因
错误代码
JSONObject firmwareSystemDTO= JSONUtil.parseObj(jsonStr);
log.info("firmwareSystemDTO: ",firmwareSystemDTO);
打印结果只有前面的字符串
firmwareSystemDTO:
考虑了使用错误、语法错误等多方面的因素后,还是不能打印出结果。
发现错误
询问AI之后发现问题不在json解析,而在log.info的打印。
Slf4j、Log4j 等日志框架要求使用 {} 占位符明确参数位置。若未添加占位符,参数会被忽略。
// ❌ 错误写法:缺少占位符 log.info("firmwareSystemDTO: ", firmwareSystemDTO); // ✅ 正确写法:添加占位符 log.info("firmwareSystemDTO: {}", firmwareSystemDTO);

注意事项:



-
-
用
+连接时可以不用占位符
log.info("deviceName: ", deviceName);//打印不出deviceName内容
log.info("deviceName: {} ", deviceName);//正常打印
log.info("productName: {} "+ productName);//正常打印
log.info("productName: "+ productName);//正常打印


浙公网安备 33010602011771号