什么时候打印日志
1.检查出错误时,要返回给前端错误信息。
在返回错误信息要打日志。
//参数判断 if (saveAgentInfoParam == null || saveAgentInfoParam.getAgentInfoDTO() == null) { log.warn(BaseErrorMsgEnum.ParamError.getMsg());//打印日志 return new FailResult(BaseErrorMsgEnum.ParamError); }
2.抓到异常的时候,往上抛异常或者返回错误信息。
在抛异常或者返回错误信息之前要打印日志。
try { // 这里将上传得到的文件保存指定目录下 FileUtils.copyInputStreamToFile(file.getInputStream(), new File("E:\\work\\test\\testfile", System.currentTimeMillis() + file.getOriginalFilename())); } catch (IOException e) { log.error("文件存储异常" ,e); throw e; }
3.调试用日志。
比如调用其他接口返回的信息,用于排查问题出在自己代码还是远程服务。一般为debug级别。
日志内容是什么
错误说明+参数(参数引导用户核查错误),只打错误说明往往找不到问题。
if (agentInfoDTOResult.getData() == null) { log.warn("代理不存在,参数id="+gentQueryParam.getId()); return new FailResult(MaidErrorMsgEnum.AgentNotExitError); }
打印日志注意什么
不要打印出NPE
上面
gentQueryParam.getId()为null就会NPE