日志怎么打印最好?
如下图,我的想法是打印堆栈信息到日志中,log.error("格式化企业信息失败{}", e);
再用throw new ServiceException("企业信息获取失败,请稍后再试"); 反馈错误信息给前端
但是这样的话,属于重复抛出异常。
正确的写法应该是什么样的?
把代码中的{}换成%s试试,如下
log.error("格式化企业信息失败%s", e);
你好。如果你在全局异常处理中捕获到即将反馈给前端的异常,并对异常信息进行获取和打印到error.log中,那么此处就可以不用再log.error();
来记录日志,这样就不会出现在日志文件中重复记录异常信息的问题了。
在全局异常处理类也可以获取到异常堆栈信息,可以统一在那里打印。
catch (Exception e) {
log.error("格式化企业信息失败", e);
throw new ServiceException("企业信息获取失败,请稍后再试");
}
public class ServiceException extends RuntimeException {
private String errorMessage;
public ServiceException(String errorMessage) {
this.errorMessage = errorMessage;
}
// 可以根据需要添加其他构造函数或方法
// ...
public String getErrorMessage() {
return errorMessage;
}
}
try {
// 业务逻辑代码
} catch (ServiceException e) {
log.error("格式化企业信息失败", e);
String errorMessage = e.getErrorMessage();
// 返回错误消息给前端
}