Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有java库可用于生成重播日志,以便应用程序可以重播日志文件中的实际错误_Java_Logging - Fatal编程技术网

是否有java库可用于生成重播日志,以便应用程序可以重播日志文件中的实际错误

是否有java库可用于生成重播日志,以便应用程序可以重播日志文件中的实际错误,java,logging,Java,Logging,考虑一个发生java应用程序错误的场景,您只能看到异常堆栈跟踪。现在,如果您可以以某种方式重新创建此问题并打开replay日志,那么使用此replay日志文件注入与异常发生时完全相同的状态。我想知道是否有一个现有的java库可以用来做这样的事情。还是说我的应用程序必须设计成能够满足这些要求 例如,考虑下面的类和输出。 现在,在解析输出并使用反射之后,我可以准确地重播div by 0场景 那么想知道是否有一个现有的java库提供这种功能 public class MyClass { /*

考虑一个发生java应用程序错误的场景,您只能看到异常堆栈跟踪。现在,如果您可以以某种方式重新创建此问题并打开replay日志,那么使用此replay日志文件注入与异常发生时完全相同的状态。我想知道是否有一个现有的java库可以用来做这样的事情。还是说我的应用程序必须设计成能够满足这些要求

例如,考虑下面的类和输出。 现在,在解析输出并使用反射之后,我可以准确地重播div by 0场景

那么想知道是否有一个现有的java库提供这种功能

public class MyClass {

    /**
     * @param args
     */

    public static void main(String[] args) {
        MyClass myClass = new MyClass();
        //Scenario 1
        int div1 = myClass.div(1,2);
        int div2 = myClass.div(1,0);


    }

    public int div(int firstArg,int secondArg){
        log(firstArg + "," + secondArg);
        return firstArg / secondArg;
    }

    private void log(String args){
        StringBuffer sb = new StringBuffer();
        sb.append("\nClass " + getClass().getName());
        sb.append(" Method " + getMethodName(1));
        sb.append(" Args " + args);
        System.out.println("LOG # " + sb.toString());
    }

    // picked from http://stackoverflow.com/questions/442747/getting-the-name-of-the-current-executing-method
    public static String getMethodName(final int depth)
    {
      final StackTraceElement[] ste = Thread.currentThread().getStackTrace();

      return ste[ste.length - 1 - depth].getMethodName(); //Thank you Tom Tresansky
    }

}
**

**CChronon是解决方案。 对于Chronon,您必须购买许可证。或者您可以免费使用带有intellij idea ultimate的Chronon插件


是你的解决方案

请阅读帮助中心。@SotiriosDelimanolis-如果不是编程问题?那我可以把这个问题放在哪里?我不知道,但不在这里。您可以修改它以符合政策。@SotiriosDelimanolis-我添加了一个我正在寻找的wht示例,并想知道是否有现有的库提供类似或更好的内容?我希望这个问题现在符合stackoverflow的条件?
LOG # 
Class MyClass Method div Args 1,2
Exception in thread "main" LOG # 
Class MyClass Method div Args 1,0
java.lang.ArithmeticException: / by zero
    at MyClass.div(MyClass.java:19)
    at MyClass.main(MyClass.java:12)