diff --git a/core/src/main/java/com/wgzhao/addax/core/Engine.java b/core/src/main/java/com/wgzhao/addax/core/Engine.java index c3ab5d4fe..5cf6730ba 100644 --- a/core/src/main/java/com/wgzhao/addax/core/Engine.java +++ b/core/src/main/java/com/wgzhao/addax/core/Engine.java @@ -25,6 +25,7 @@ import com.wgzhao.addax.core.job.JobContainer; import com.wgzhao.addax.core.util.ConfigParser; import com.wgzhao.addax.core.util.ConfigurationValidate; +import com.wgzhao.addax.core.util.ExceptionTracker; import com.wgzhao.addax.core.util.container.LoadUtil; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.DefaultParser; @@ -134,12 +135,10 @@ public static void main(String[] args) { LOG.error("need a job file"); System.exit(1); } - try { Engine.entry(args); } catch (Throwable e) { - e.printStackTrace(); - LOG.error(e.toString()); + LOG.error(ExceptionTracker.trace(e)); System.exit(2); } System.exit(0); diff --git a/core/src/main/java/com/wgzhao/addax/core/util/ExceptionTracker.java b/core/src/main/java/com/wgzhao/addax/core/util/ExceptionTracker.java new file mode 100644 index 000000000..718b130fb --- /dev/null +++ b/core/src/main/java/com/wgzhao/addax/core/util/ExceptionTracker.java @@ -0,0 +1,16 @@ +package com.wgzhao.addax.core.util; + +public class ExceptionTracker +{ + public static final int STRING_BUFFER = 4096; + + public static String trace(Throwable e) { + StringBuilder sb = new StringBuilder(STRING_BUFFER); + sb.append(e.toString()).append("\n"); + StackTraceElement[] stackTrace = e.getStackTrace(); + for (StackTraceElement stackTraceElement : stackTrace) { + sb.append("\t").append(stackTraceElement).append("\n"); + } + return sb.toString(); + } +}