日志:打印:多个对象型参数(3个及以上)

674 阅读1分钟

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