log4j是程序中经常使用的日志工具,分为5个级别:log4j的级别
今天的问题:打印参数个数为3个及以上时,如何处理?
直接按部就班会出现:
logger.info("tryGetCustomerByJdPinAndDepartNo---入参 jdPin:{},departNo:{},init;{}", jdPin, departNo,JSON.toJSONString(init));
报错信息:

原因:
找到源码:Logger.class
infod 的方法结构,如图:
void info(String var1); void info(String var1, Object var2); void info(String var1, Object var2, Object var3); void info(String var1, Object[] var2); void info(String var1, Throwable var2); boolean isInfoEnabled(Marker var1); void info(Marker var1, String var2); void info(Marker var1, String var2, Object var3); void info(Marker var1, String var2, Object var3, Object var4); void info(Marker var1, String var2, Object[] var3); void info(Marker var1, String var2, Throwable var3);
结论:3个以及以上参数时候,需要使用另一个方法:

即:构造一个对象数组即可
logger.info("tryGetCustomerByJdPinAndDepartNo---入参 jdPin:{},departNo:{},init;{}", new String[] {jdPin, departNo,JSON.toJSONString(init)});