public class com.sun.tools.sjavac.Log
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.sjavac.Log
  super_class: java.lang.Object
{
  private static com.sun.tools.sjavac.Log stdOutErr;
    descriptor: Lcom/sun/tools/sjavac/Log;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.ThreadLocal<com.sun.tools.sjavac.Log> loggers;
    descriptor: Ljava/lang/ThreadLocal;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Ljava/lang/ThreadLocal<Lcom/sun/tools/sjavac/Log;>;

  protected java.io.PrintWriter err;
    descriptor: Ljava/io/PrintWriter;
    flags: (0x0004) ACC_PROTECTED

  protected java.io.PrintWriter out;
    descriptor: Ljava/io/PrintWriter;
    flags: (0x0004) ACC_PROTECTED

  protected com.sun.tools.sjavac.Log$Level level;
    descriptor: Lcom/sun/tools/sjavac/Log$Level;
    flags: (0x0004) ACC_PROTECTED

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=0, args_size=0
         0: .line 63
            new com.sun.tools.sjavac.Log
            dup
            new java.io.PrintWriter
            dup
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;)V
            new java.io.PrintWriter
            dup
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/OutputStream;)V
            invokespecial com.sun.tools.sjavac.Log.<init>:(Ljava/io/Writer;Ljava/io/Writer;)V
            putstatic com.sun.tools.sjavac.Log.stdOutErr:Lcom/sun/tools/sjavac/Log;
         1: .line 64
            new java.lang.ThreadLocal
            dup
            invokespecial java.lang.ThreadLocal.<init>:()V
            putstatic com.sun.tools.sjavac.Log.loggers:Ljava/lang/ThreadLocal;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.io.Writer, java.io.Writer);
    descriptor: (Ljava/io/Writer;Ljava/io/Writer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.sun.tools.sjavac.Log this
        start local 1 // java.io.Writer out
        start local 2 // java.io.Writer err
         0: .line 70
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 68
            aload 0 /* this */
            getstatic com.sun.tools.sjavac.Log$Level.INFO:Lcom/sun/tools/sjavac/Log$Level;
            putfield com.sun.tools.sjavac.Log.level:Lcom/sun/tools/sjavac/Log$Level;
         2: .line 71
            aload 0 /* this */
            aload 1 /* out */
            ifnonnull 3
            aconst_null
            goto 4
      StackMap locals: com.sun.tools.sjavac.Log java.io.Writer java.io.Writer
      StackMap stack: com.sun.tools.sjavac.Log
         3: new java.io.PrintWriter
            dup
            aload 1 /* out */
            iconst_1
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;Z)V
      StackMap locals: com.sun.tools.sjavac.Log java.io.Writer java.io.Writer
      StackMap stack: com.sun.tools.sjavac.Log java.io.PrintWriter
         4: putfield com.sun.tools.sjavac.Log.out:Ljava/io/PrintWriter;
         5: .line 72
            aload 0 /* this */
            aload 2 /* err */
            ifnonnull 6
            aconst_null
            goto 7
      StackMap locals:
      StackMap stack: com.sun.tools.sjavac.Log
         6: new java.io.PrintWriter
            dup
            aload 2 /* err */
            iconst_1
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;Z)V
      StackMap locals: com.sun.tools.sjavac.Log java.io.Writer java.io.Writer
      StackMap stack: com.sun.tools.sjavac.Log java.io.PrintWriter
         7: putfield com.sun.tools.sjavac.Log.err:Ljava/io/PrintWriter;
         8: .line 73
            return
        end local 2 // java.io.Writer err
        end local 1 // java.io.Writer out
        end local 0 // com.sun.tools.sjavac.Log this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Lcom/sun/tools/sjavac/Log;
            0    9     1   out  Ljava/io/Writer;
            0    9     2   err  Ljava/io/Writer;
    MethodParameters:
      Name  Flags
      out   
      err   

  public static void setLogForCurrentThread(com.sun.tools.sjavac.Log);
    descriptor: (Lcom/sun/tools/sjavac/Log;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.sjavac.Log log
         0: .line 76
            getstatic com.sun.tools.sjavac.Log.loggers:Ljava/lang/ThreadLocal;
            aload 0 /* log */
            invokevirtual java.lang.ThreadLocal.set:(Ljava/lang/Object;)V
         1: .line 77
            return
        end local 0 // com.sun.tools.sjavac.Log log
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   log  Lcom/sun/tools/sjavac/Log;
    MethodParameters:
      Name  Flags
      log   

  public static void setLogLevel(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String l
         0: .line 80
            aload 0 /* l */
            getstatic java.util.Locale.US:Ljava/util/Locale;
            invokevirtual java.lang.String.toUpperCase:(Ljava/util/Locale;)Ljava/lang/String;
            invokestatic com.sun.tools.sjavac.Log$Level.valueOf:(Ljava/lang/String;)Lcom/sun/tools/sjavac/Log$Level;
            invokestatic com.sun.tools.sjavac.Log.setLogLevel:(Lcom/sun/tools/sjavac/Log$Level;)V
         1: .line 81
            return
        end local 0 // java.lang.String l
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     l  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      l     

  public static void setLogLevel(com.sun.tools.sjavac.Log$Level);
    descriptor: (Lcom/sun/tools/sjavac/Log$Level;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.tools.sjavac.Log$Level l
         0: .line 84
            invokestatic com.sun.tools.sjavac.Log.get:()Lcom/sun/tools/sjavac/Log;
            aload 0 /* l */
            putfield com.sun.tools.sjavac.Log.level:Lcom/sun/tools/sjavac/Log$Level;
         1: .line 85
            return
        end local 0 // com.sun.tools.sjavac.Log$Level l
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     l  Lcom/sun/tools/sjavac/Log$Level;
    MethodParameters:
      Name  Flags
      l     

  public static void trace(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String msg
         0: .line 88
            getstatic com.sun.tools.sjavac.Log$Level.TRACE:Lcom/sun/tools/sjavac/Log$Level;
            aload 0 /* msg */
            invokestatic com.sun.tools.sjavac.Log.log:(Lcom/sun/tools/sjavac/Log$Level;Ljava/lang/String;)V
         1: .line 89
            return
        end local 0 // java.lang.String msg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   msg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      msg   

  public static void debug(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String msg
         0: .line 92
            getstatic com.sun.tools.sjavac.Log$Level.DEBUG:Lcom/sun/tools/sjavac/Log$Level;
            aload 0 /* msg */
            invokestatic com.sun.tools.sjavac.Log.log:(Lcom/sun/tools/sjavac/Log$Level;Ljava/lang/String;)V
         1: .line 93
            return
        end local 0 // java.lang.String msg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   msg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      msg   

  public static void info(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String msg
         0: .line 96
            getstatic com.sun.tools.sjavac.Log$Level.INFO:Lcom/sun/tools/sjavac/Log$Level;
            aload 0 /* msg */
            invokestatic com.sun.tools.sjavac.Log.log:(Lcom/sun/tools/sjavac/Log$Level;Ljava/lang/String;)V
         1: .line 97
            return
        end local 0 // java.lang.String msg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   msg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      msg   

  public static void warn(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String msg
         0: .line 100
            getstatic com.sun.tools.sjavac.Log$Level.WARN:Lcom/sun/tools/sjavac/Log$Level;
            aload 0 /* msg */
            invokestatic com.sun.tools.sjavac.Log.log:(Lcom/sun/tools/sjavac/Log$Level;Ljava/lang/String;)V
         1: .line 101
            return
        end local 0 // java.lang.String msg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   msg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      msg   

  public static void error(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.String msg
         0: .line 104
            getstatic com.sun.tools.sjavac.Log$Level.ERROR:Lcom/sun/tools/sjavac/Log$Level;
            aload 0 /* msg */
            invokestatic com.sun.tools.sjavac.Log.log:(Lcom/sun/tools/sjavac/Log$Level;Ljava/lang/String;)V
         1: .line 105
            return
        end local 0 // java.lang.String msg
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0   msg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      msg   

  public static void error(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Throwable t
         0: .line 108
            getstatic com.sun.tools.sjavac.Log$Level.ERROR:Lcom/sun/tools/sjavac/Log$Level;
            aload 0 /* t */
            invokestatic com.sun.tools.sjavac.Log.log:(Lcom/sun/tools/sjavac/Log$Level;Ljava/lang/Throwable;)V
         1: .line 109
            return
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     t  Ljava/lang/Throwable;
    MethodParameters:
      Name  Flags
      t     

  public static void log(com.sun.tools.sjavac.Log$Level, java.lang.String);
    descriptor: (Lcom/sun/tools/sjavac/Log$Level;Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.tools.sjavac.Log$Level l
        start local 1 // java.lang.String msg
         0: .line 112
            invokestatic com.sun.tools.sjavac.Log.get:()Lcom/sun/tools/sjavac/Log;
            aload 0 /* l */
            aload 1 /* msg */
            invokevirtual com.sun.tools.sjavac.Log.printLogMsg:(Lcom/sun/tools/sjavac/Log$Level;Ljava/lang/String;)V
         1: .line 113
            return
        end local 1 // java.lang.String msg
        end local 0 // com.sun.tools.sjavac.Log$Level l
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     l  Lcom/sun/tools/sjavac/Log$Level;
            0    2     1   msg  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      l     
      msg   

  public static void debug(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Throwable t
         0: .line 116
            getstatic com.sun.tools.sjavac.Log$Level.DEBUG:Lcom/sun/tools/sjavac/Log$Level;
            aload 0 /* t */
            invokestatic com.sun.tools.sjavac.Log.log:(Lcom/sun/tools/sjavac/Log$Level;Ljava/lang/Throwable;)V
         1: .line 117
            return
        end local 0 // java.lang.Throwable t
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     t  Ljava/lang/Throwable;
    MethodParameters:
      Name  Flags
      t     

  public static void log(com.sun.tools.sjavac.Log$Level, java.lang.Throwable);
    descriptor: (Lcom/sun/tools/sjavac/Log$Level;Ljava/lang/Throwable;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.sun.tools.sjavac.Log$Level l
        start local 1 // java.lang.Throwable t
         0: .line 120
            new java.io.StringWriter
            dup
            invokespecial java.io.StringWriter.<init>:()V
            astore 2 /* sw */
        start local 2 // java.io.StringWriter sw
         1: .line 121
            aload 1 /* t */
            new java.io.PrintWriter
            dup
            aload 2 /* sw */
            iconst_1
            invokespecial java.io.PrintWriter.<init>:(Ljava/io/Writer;Z)V
            invokevirtual java.lang.Throwable.printStackTrace:(Ljava/io/PrintWriter;)V
         2: .line 122
            aload 0 /* l */
            aload 2 /* sw */
            invokevirtual java.io.StringWriter.toString:()Ljava/lang/String;
            invokestatic com.sun.tools.sjavac.Log.log:(Lcom/sun/tools/sjavac/Log$Level;Ljava/lang/String;)V
         3: .line 123
            return
        end local 2 // java.io.StringWriter sw
        end local 1 // java.lang.Throwable t
        end local 0 // com.sun.tools.sjavac.Log$Level l
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     l  Lcom/sun/tools/sjavac/Log$Level;
            0    4     1     t  Ljava/lang/Throwable;
            1    4     2    sw  Ljava/io/StringWriter;
    MethodParameters:
      Name  Flags
      l     
      t     

  public static boolean isDebugging();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 126
            invokestatic com.sun.tools.sjavac.Log.get:()Lcom/sun/tools/sjavac/Log;
            getstatic com.sun.tools.sjavac.Log$Level.DEBUG:Lcom/sun/tools/sjavac/Log$Level;
            invokevirtual com.sun.tools.sjavac.Log.isLevelLogged:(Lcom/sun/tools/sjavac/Log$Level;)Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected boolean isLevelLogged(com.sun.tools.sjavac.Log$Level);
    descriptor: (Lcom/sun/tools/sjavac/Log$Level;)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.sjavac.Log this
        start local 1 // com.sun.tools.sjavac.Log$Level l
         0: .line 130
            aload 1 /* l */
            invokevirtual com.sun.tools.sjavac.Log$Level.ordinal:()I
            aload 0 /* this */
            getfield com.sun.tools.sjavac.Log.level:Lcom/sun/tools/sjavac/Log$Level;
            invokevirtual com.sun.tools.sjavac.Log$Level.ordinal:()I
            if_icmpgt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // com.sun.tools.sjavac.Log$Level l
        end local 0 // com.sun.tools.sjavac.Log this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/tools/sjavac/Log;
            0    2     1     l  Lcom/sun/tools/sjavac/Log$Level;
    MethodParameters:
      Name  Flags
      l     

  public static com.sun.tools.sjavac.Log get();
    descriptor: ()Lcom/sun/tools/sjavac/Log;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 134
            getstatic com.sun.tools.sjavac.Log.loggers:Ljava/lang/ThreadLocal;
            invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
            checkcast com.sun.tools.sjavac.Log
            astore 0 /* log */
        start local 0 // com.sun.tools.sjavac.Log log
         1: .line 135
            aload 0 /* log */
            ifnull 2
            aload 0 /* log */
            goto 3
      StackMap locals: com.sun.tools.sjavac.Log
      StackMap stack:
         2: getstatic com.sun.tools.sjavac.Log.stdOutErr:Lcom/sun/tools/sjavac/Log;
      StackMap locals:
      StackMap stack: com.sun.tools.sjavac.Log
         3: areturn
        end local 0 // com.sun.tools.sjavac.Log log
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    4     0   log  Lcom/sun/tools/sjavac/Log;

  protected void printLogMsg(com.sun.tools.sjavac.Log$Level, java.lang.String);
    descriptor: (Lcom/sun/tools/sjavac/Log$Level;Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // com.sun.tools.sjavac.Log this
        start local 1 // com.sun.tools.sjavac.Log$Level msgLevel
        start local 2 // java.lang.String msg
         0: .line 139
            aload 0 /* this */
            aload 1 /* msgLevel */
            invokevirtual com.sun.tools.sjavac.Log.isLevelLogged:(Lcom/sun/tools/sjavac/Log$Level;)Z
            ifeq 5
         1: .line 140
            aload 1 /* msgLevel */
            invokevirtual com.sun.tools.sjavac.Log$Level.ordinal:()I
            getstatic com.sun.tools.sjavac.Log$Level.WARN:Lcom/sun/tools/sjavac/Log$Level;
            invokevirtual com.sun.tools.sjavac.Log$Level.ordinal:()I
            if_icmpgt 2
            aload 0 /* this */
            getfield com.sun.tools.sjavac.Log.err:Ljava/io/PrintWriter;
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* this */
            getfield com.sun.tools.sjavac.Log.out:Ljava/io/PrintWriter;
      StackMap locals:
      StackMap stack: java.io.PrintWriter
         3: astore 3 /* pw */
        start local 3 // java.io.PrintWriter pw
         4: .line 141
            aload 3 /* pw */
            aload 2 /* msg */
            invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
        end local 3 // java.io.PrintWriter pw
         5: .line 143
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.String msg
        end local 1 // com.sun.tools.sjavac.Log$Level msgLevel
        end local 0 // com.sun.tools.sjavac.Log this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lcom/sun/tools/sjavac/Log;
            0    6     1  msgLevel  Lcom/sun/tools/sjavac/Log$Level;
            0    6     2       msg  Ljava/lang/String;
            4    5     3        pw  Ljava/io/PrintWriter;
    MethodParameters:
          Name  Flags
      msgLevel  
      msg       
}
SourceFile: "Log.java"
NestMembers:
  com.sun.tools.sjavac.Log$Level
InnerClasses:
  public final Level = com.sun.tools.sjavac.Log$Level of com.sun.tools.sjavac.Log