e统一放在最后,可以打出来堆栈信息
加括号把e放在括号里边是打印不出来堆栈信息的
错误示范
log.error("启动失败...ERROR:{}",e)
正确
log.error("启动失败...",e)
正常情况下我们打错误日志是把关键信息打出来,后边跟堆栈信息
log.error("获取用户信息失败,userId:{}",userId,e)
以后再遇到这种try catch 打印错误日志的就按照这种去写
错误示范(空指针)
if(xxxVo==null||StringUtils.isEmpty(xxxVo.getModel().getName()),BooleanUtils.isTrue(xxxVo.flag){
//处理
log.error("XXXServiceImpl.xxx,不符合条件,a={},xxxVo.getModel()={},xxxVo.getModel().getName(),flag={}",xxxVo,xxxVo.getModel(),xxxVo.getModel().getName(),xxxVo.flag)
}
我想只要这些有一个是空就把它打印出来,但是不能这么写,应该使用JSON序列化打印出来对象字符串,JSON.toJSONString(XXXVo))
if(xxxVo==null||StringUtils.isEmpty(xxxVo.getModel().getName()),BooleanUtils.isTrue(xxxVo.flag){
//处理
log.error("XXXServiceImpl.xxx,不符合条件,XXXVo={}",JSON.toJSONString(XXXVo)));
}