printStackTrace()使用的是synchronized锁,性能低,吃程序资源,容易造成程序资源占满进而导致程序崩溃。建议使用第三方日志依赖如:logback(springboot首选)、log4j、log4j2
private void printStackTrace(PrintStreamOrWriter var1) {
Set var2 = Collections.newSetFromMap(new IdentityHashMap());
var2.add(this);
// 源码里面使用了synchronized锁
synchronized(var1.lock()) {
var1.println(this);
StackTraceElement[] var4 = this.getOurStackTrace();
StackTraceElement[] var5 = var4;
int var6 = var4.length;
int var7;
for(var7 = 0; var7 < var6; ++var7) {
StackTraceElement var8 = var5[var7];
var1.println("\tat " + var8);
}
Throwable[] var11 = this.getSuppressed();
var6 = var11.length;
for(var7 = 0; var7 < var6; ++var7) {
Throwable var13 = var11[var7];
var13.printEnclosedStackTrace(var1, var4, "Suppressed: ", "\t", var2);
}
Throwable var12 = this.getCause();
if (var12 != null) {
var12.printEnclosedStackTrace(var1, var4, "Caused by: ", "", var2);
}
}
}