Refactored crash-report
This commit is contained in:
parent
f92b18e9d5
commit
d5723b9ae6
@ -46,9 +46,11 @@ public class CrashReportGenerator {
|
|||||||
if (appendAnalyzers(output, throwable, messageFormat, args)) {
|
if (appendAnalyzers(output, throwable, messageFormat, args)) {
|
||||||
addSeparator(output);
|
addSeparator(output);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
appendMessageFormat(output, messageFormat, args);
|
||||||
|
|
||||||
appendStackTrace(output, throwable);
|
appendStackTrace(output, throwable);
|
||||||
|
|
||||||
export(output.toString());
|
export(output.toString());
|
||||||
|
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
@ -62,16 +64,19 @@ public class CrashReportGenerator {
|
|||||||
try {
|
try {
|
||||||
provider.provideContext(buf);
|
provider.provideContext(buf);
|
||||||
|
|
||||||
addSeparator(output);
|
if (!buf.isEmpty()) {
|
||||||
output.append("Provider name: ").append(provider.getName()).append("\n");
|
addSeparator(output);
|
||||||
for (Map.Entry<String, String> entry : buf.entrySet()) {
|
output.append("Provider name: ").append(provider.getName()).append("\n");
|
||||||
output.append(entry.getKey()).append(": ").append(entry.getValue()).append("\n");
|
for (Map.Entry<String, String> entry : buf.entrySet()) {
|
||||||
|
output.append(entry.getKey()).append(": ").append(entry.getValue()).append("\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (Throwable t) {
|
} catch (Throwable t) {
|
||||||
|
output.append("\n");
|
||||||
try {
|
try {
|
||||||
addSeparator(output);
|
|
||||||
output.append(provider.getName()).append(" is broken").append("\n");
|
output.append(provider.getName()).append(" is broken").append("\n");
|
||||||
} catch (Throwable th) {
|
} catch (Throwable th) {
|
||||||
|
output.append(provider.getClass().getName()).append(" is broken").append("\n");
|
||||||
// You stupid
|
// You stupid
|
||||||
}
|
}
|
||||||
// Analyzer is broken
|
// Analyzer is broken
|
||||||
@ -107,17 +112,24 @@ public class CrashReportGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return analyzerResponsesExist;
|
return analyzerResponsesExist;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void appendMessageFormat(StringBuilder output, String messageFormat, Object... arg) {
|
||||||
|
output.append("Provided description: ").append(String.format(messageFormat, arg)).append("\n");
|
||||||
|
|
||||||
|
addSeparator(output);
|
||||||
|
}
|
||||||
|
|
||||||
private static void appendStackTrace(StringBuilder output, Throwable throwable) {
|
private static void appendStackTrace(StringBuilder output, Throwable throwable) {
|
||||||
output.append("Stacktrace: \n");
|
output.append("Stacktrace: \n");
|
||||||
|
|
||||||
if (throwable == null) {
|
if (throwable == null) {
|
||||||
output.append("no Throwable provided").append("\n");
|
output.append("no Throwable provided").append("\n");
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Formatting to a human-readable string
|
// Formatting to a human-readable string
|
||||||
Writer sink = new StringBuilderWriter(output);
|
Writer sink = new StringBuilderWriter(output);
|
||||||
try {
|
try {
|
||||||
@ -127,16 +139,16 @@ public class CrashReportGenerator {
|
|||||||
}
|
}
|
||||||
output.append("\n");
|
output.append("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void export(String report) {
|
private static void export(String report) {
|
||||||
try {
|
try {
|
||||||
LOGGER.fatal("/n" + report);
|
LOGGER.fatal("/n" + report);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
// PLAK
|
// PLAK
|
||||||
}
|
}
|
||||||
|
|
||||||
System.err.println(report);
|
System.err.println(report);
|
||||||
|
|
||||||
generateCrashReportFiles(report);
|
generateCrashReportFiles(report);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -144,21 +156,13 @@ public class CrashReportGenerator {
|
|||||||
Date date = new Date();
|
Date date = new Date();
|
||||||
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-HH.mm.ss");
|
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-HH.mm.ss");
|
||||||
|
|
||||||
boolean pathExist = false;
|
try {
|
||||||
if (!Files.exists(CRASH_REPORTS_PATH)) {
|
if (!Files.exists(CRASH_REPORTS_PATH)) Files.createDirectory(CRASH_REPORTS_PATH);
|
||||||
|
|
||||||
try {
|
|
||||||
Files.createDirectory(CRASH_REPORTS_PATH);
|
|
||||||
pathExist = true;
|
|
||||||
} catch (IOException e) {
|
|
||||||
// Crash Report not created
|
|
||||||
}
|
|
||||||
|
|
||||||
} else pathExist = true;
|
|
||||||
|
|
||||||
if (pathExist) {
|
|
||||||
createFileForCrashReport(output, CRASH_REPORTS_PATH.toString() + "/latest.log");
|
createFileForCrashReport(output, CRASH_REPORTS_PATH.toString() + "/latest.log");
|
||||||
createFileForCrashReport(output, CRASH_REPORTS_PATH.toString() + "/crash-" + dateFormat.format(date) + ".log");
|
createFileForCrashReport(output, CRASH_REPORTS_PATH.toString() + "/crash-" + dateFormat.format(date) + ".log");
|
||||||
|
} catch (Throwable t) {
|
||||||
|
// Crash Report not created
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user