java尽量不要在代码里面使用printStackTrace()
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(" at " + var8); } Throwable[] var11 = this.getSuppressed(); var6 = var11.length; for(var7 = 0; var7 < var6; ++var7) { Throwable var13 = var11[var7]; var13.printEnclosedStackTrace(var1, var4, "Suppressed: ", " ", var2); } Throwable var12 = this.getCause(); if (var12 != null) { var12.printEnclosedStackTrace(var1, var4, "Caused by: ", "", var2); } } }