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)});