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);
            }

        }
    }
经验分享 程序员 微信小程序 职场和发展