是否有办法为某些异常后出现的每个Java堆栈跟踪分配唯一ID?我想获取该号码并将其用于更快的故障排除。
答案 0 :(得分:2)
为什么不创建自定义Exception并散列堆栈跟踪并将其设置为唯一ID?
import org.apache.commons.lang.exception.ExceptionUtils;
public class MyException extends Exception {
private static final long serialVersionUID = -2145930259049207199L;
private final int uniqueId;
public MyException(String message) {
super(message);
this.uniqueId = ExceptionUtils.getStackTrace(this).hashCode();
}
public int getUniqueId() {
return uniqueId;
}
}
如果你想为每条消息提供一个真正唯一的id(即你没有尝试跟踪重复的exeption消息),你可以在构造函数中相应地设置uniqueId:
this.uniqueId = UUID.randomUUID().toString();