获取堆栈跟踪唯一编号

问题描述 投票:-1回答:1

有没有办法为一些异常后出现的每个Java堆栈跟踪分配唯一ID?我想获取该号码并使用它来加快故障排除。

java
1个回答
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();
© www.soinside.com 2019 - 2024. All rights reserved.