final class org.jboss.logging.LoggerProviders
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.jboss.logging.LoggerProviders
  super_class: java.lang.Object
{
  static final java.lang.String LOGGING_PROVIDER_KEY;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "org.jboss.logging.provider"

  static final org.jboss.logging.LoggerProvider PROVIDER;
    descriptor: Lorg/jboss/logging/LoggerProvider;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 31
            invokestatic org.jboss.logging.LoggerProviders.find:()Lorg/jboss/logging/LoggerProvider;
            putstatic org.jboss.logging.LoggerProviders.PROVIDER:Lorg/jboss/logging/LoggerProvider;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static org.jboss.logging.LoggerProvider find();
    descriptor: ()Lorg/jboss/logging/LoggerProvider;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 34
            invokestatic org.jboss.logging.LoggerProviders.findProvider:()Lorg/jboss/logging/LoggerProvider;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private static org.jboss.logging.LoggerProvider findProvider();
    descriptor: ()Lorg/jboss/logging/LoggerProvider;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=0
         0: .line 41
            ldc Lorg/jboss/logging/LoggerProviders;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 0 /* cl */
        start local 0 // java.lang.ClassLoader cl
         1: .line 44
            new org.jboss.logging.LoggerProviders$1
            dup
            invokespecial org.jboss.logging.LoggerProviders$1.<init>:()V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* loggerProvider */
        start local 1 // java.lang.String loggerProvider
         2: .line 49
            aload 1 /* loggerProvider */
            ifnull 19
         3: .line 50
            ldc "jboss"
            aload 1 /* loggerProvider */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 6
         4: .line 51
            aload 0 /* cl */
            ldc "system property"
            invokestatic org.jboss.logging.LoggerProviders.tryJBossLogManager:(Ljava/lang/ClassLoader;Ljava/lang/String;)Lorg/jboss/logging/LoggerProvider;
         5: areturn
         6: .line 52
      StackMap locals: java.lang.ClassLoader java.lang.String
      StackMap stack:
            ldc "jdk"
            aload 1 /* loggerProvider */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 9
         7: .line 53
            ldc "system property"
            invokestatic org.jboss.logging.LoggerProviders.tryJDK:(Ljava/lang/String;)Lorg/jboss/logging/JDKLoggerProvider;
         8: areturn
         9: .line 54
      StackMap locals:
      StackMap stack:
            ldc "log4j2"
            aload 1 /* loggerProvider */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 12
        10: .line 55
            aload 0 /* cl */
            ldc "system property"
            invokestatic org.jboss.logging.LoggerProviders.tryLog4j2:(Ljava/lang/ClassLoader;Ljava/lang/String;)Lorg/jboss/logging/LoggerProvider;
        11: areturn
        12: .line 56
      StackMap locals:
      StackMap stack:
            ldc "log4j"
            aload 1 /* loggerProvider */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 15
        13: .line 57
            aload 0 /* cl */
            ldc "system property"
            invokestatic org.jboss.logging.LoggerProviders.tryLog4j:(Ljava/lang/ClassLoader;Ljava/lang/String;)Lorg/jboss/logging/LoggerProvider;
        14: areturn
        15: .line 58
      StackMap locals:
      StackMap stack:
            ldc "slf4j"
            aload 1 /* loggerProvider */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 19
        16: .line 59
            ldc "system property"
            invokestatic org.jboss.logging.LoggerProviders.trySlf4j:(Ljava/lang/String;)Lorg/jboss/logging/LoggerProvider;
        17: areturn
        end local 1 // java.lang.String loggerProvider
        18: .line 62
      StackMap locals: java.lang.ClassLoader
      StackMap stack: java.lang.Throwable
            pop
        19: .line 68
      StackMap locals:
      StackMap stack:
            ldc Lorg/jboss/logging/LoggerProvider;
            aload 0 /* cl */
            invokestatic java.util.ServiceLoader.load:(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader;
            astore 1 /* loader */
        start local 1 // java.util.ServiceLoader loader
        20: .line 69
            aload 1 /* loader */
            invokevirtual java.util.ServiceLoader.iterator:()Ljava/util/Iterator;
            astore 2 /* iter */
        start local 2 // java.util.Iterator iter
        21: .line 72
      StackMap locals: java.util.ServiceLoader java.util.Iterator
      StackMap stack:
            aload 2 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 23
        22: goto 30
        23: .line 73
      StackMap locals:
      StackMap stack:
            aload 2 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.jboss.logging.LoggerProvider
            astore 3 /* provider */
        start local 3 // org.jboss.logging.LoggerProvider provider
        24: .line 75
            aload 3 /* provider */
            ldc "service loader"
            invokestatic org.jboss.logging.LoggerProviders.logProvider:(Lorg/jboss/logging/LoggerProvider;Ljava/lang/String;)V
        25: .line 76
            aload 3 /* provider */
        26: areturn
        end local 3 // org.jboss.logging.LoggerProvider provider
        27: .line 77
      StackMap locals:
      StackMap stack: java.util.ServiceConfigurationError
            pop
        28: .line 70
            goto 21
        end local 2 // java.util.Iterator iter
        end local 1 // java.util.ServiceLoader loader
        29: .line 79
      StackMap locals: java.lang.ClassLoader
      StackMap stack: java.lang.Throwable
            pop
        30: .line 85
      StackMap locals:
      StackMap stack:
            aload 0 /* cl */
            aconst_null
            invokestatic org.jboss.logging.LoggerProviders.tryJBossLogManager:(Ljava/lang/ClassLoader;Ljava/lang/String;)Lorg/jboss/logging/LoggerProvider;
        31: areturn
        32: .line 86
      StackMap locals:
      StackMap stack: java.lang.Throwable
            pop
        33: .line 91
            aload 0 /* cl */
            aconst_null
            invokestatic org.jboss.logging.LoggerProviders.tryLog4j2:(Ljava/lang/ClassLoader;Ljava/lang/String;)Lorg/jboss/logging/LoggerProvider;
        34: areturn
        35: .line 92
      StackMap locals:
      StackMap stack: java.lang.Throwable
            pop
        36: .line 96
            aload 0 /* cl */
            aconst_null
            invokestatic org.jboss.logging.LoggerProviders.tryLog4j:(Ljava/lang/ClassLoader;Ljava/lang/String;)Lorg/jboss/logging/LoggerProvider;
        37: areturn
        38: .line 97
      StackMap locals:
      StackMap stack: java.lang.Throwable
            pop
        39: .line 102
            ldc "ch.qos.logback.classic.Logger"
            iconst_0
            aload 0 /* cl */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            pop
        40: .line 103
            aconst_null
            invokestatic org.jboss.logging.LoggerProviders.trySlf4j:(Ljava/lang/String;)Lorg/jboss/logging/LoggerProvider;
        41: areturn
        42: .line 104
      StackMap locals:
      StackMap stack: java.lang.Throwable
            pop
        43: .line 107
            aconst_null
            invokestatic org.jboss.logging.LoggerProviders.tryJDK:(Ljava/lang/String;)Lorg/jboss/logging/JDKLoggerProvider;
            areturn
        end local 0 // java.lang.ClassLoader cl
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            1   44     0              cl  Ljava/lang/ClassLoader;
            2   18     1  loggerProvider  Ljava/lang/String;
           20   29     1          loader  Ljava/util/ServiceLoader<Lorg/jboss/logging/LoggerProvider;>;
           21   29     2            iter  Ljava/util/Iterator<Lorg/jboss/logging/LoggerProvider;>;
           24   27     3        provider  Lorg/jboss/logging/LoggerProvider;
      Exception table:
        from    to  target  type
           1     5      18  Class java.lang.Throwable
           6     8      18  Class java.lang.Throwable
           9    11      18  Class java.lang.Throwable
          12    14      18  Class java.lang.Throwable
          15    17      18  Class java.lang.Throwable
          21    22      27  Class java.util.ServiceConfigurationError
          23    26      27  Class java.util.ServiceConfigurationError
          19    26      29  Class java.lang.Throwable
          27    29      29  Class java.lang.Throwable
          30    31      32  Class java.lang.Throwable
          33    34      35  Class java.lang.Throwable
          36    37      38  Class java.lang.Throwable
          39    41      42  Class java.lang.Throwable

  private static org.jboss.logging.JDKLoggerProvider tryJDK(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/jboss/logging/JDKLoggerProvider;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String via
         0: .line 111
            new org.jboss.logging.JDKLoggerProvider
            dup
            invokespecial org.jboss.logging.JDKLoggerProvider.<init>:()V
            astore 1 /* provider */
        start local 1 // org.jboss.logging.JDKLoggerProvider provider
         1: .line 112
            aload 1 /* provider */
            aload 0 /* via */
            invokestatic org.jboss.logging.LoggerProviders.logProvider:(Lorg/jboss/logging/LoggerProvider;Ljava/lang/String;)V
         2: .line 113
            aload 1 /* provider */
            areturn
        end local 1 // org.jboss.logging.JDKLoggerProvider provider
        end local 0 // java.lang.String via
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0       via  Ljava/lang/String;
            1    3     1  provider  Lorg/jboss/logging/JDKLoggerProvider;
    MethodParameters:
      Name  Flags
      via   final

  private static org.jboss.logging.LoggerProvider trySlf4j(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/jboss/logging/LoggerProvider;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.lang.String via
         0: .line 117
            new org.jboss.logging.Slf4jLoggerProvider
            dup
            invokespecial org.jboss.logging.Slf4jLoggerProvider.<init>:()V
            astore 1 /* provider */
        start local 1 // org.jboss.logging.LoggerProvider provider
         1: .line 118
            aload 1 /* provider */
            aload 0 /* via */
            invokestatic org.jboss.logging.LoggerProviders.logProvider:(Lorg/jboss/logging/LoggerProvider;Ljava/lang/String;)V
         2: .line 119
            aload 1 /* provider */
            areturn
        end local 1 // org.jboss.logging.LoggerProvider provider
        end local 0 // java.lang.String via
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0       via  Ljava/lang/String;
            1    3     1  provider  Lorg/jboss/logging/LoggerProvider;
    MethodParameters:
      Name  Flags
      via   final

  private static org.jboss.logging.LoggerProvider tryLog4j2(java.lang.ClassLoader, java.lang.String);
    descriptor: (Ljava/lang/ClassLoader;Ljava/lang/String;)Lorg/jboss/logging/LoggerProvider;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.ClassLoader cl
        start local 1 // java.lang.String via
         0: .line 124
            ldc "org.apache.logging.log4j.Logger"
            iconst_1
            aload 0 /* cl */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            pop
         1: .line 125
            ldc "org.apache.logging.log4j.LogManager"
            iconst_1
            aload 0 /* cl */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            pop
         2: .line 126
            ldc "org.apache.logging.log4j.spi.AbstractLogger"
            iconst_1
            aload 0 /* cl */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            pop
         3: .line 127
            new org.jboss.logging.Log4j2LoggerProvider
            dup
            invokespecial org.jboss.logging.Log4j2LoggerProvider.<init>:()V
            astore 2 /* provider */
        start local 2 // org.jboss.logging.LoggerProvider provider
         4: .line 129
            aload 2 /* provider */
            aload 1 /* via */
            invokestatic org.jboss.logging.LoggerProviders.logProvider:(Lorg/jboss/logging/LoggerProvider;Ljava/lang/String;)V
         5: .line 130
            aload 2 /* provider */
            areturn
        end local 2 // org.jboss.logging.LoggerProvider provider
        end local 1 // java.lang.String via
        end local 0 // java.lang.ClassLoader cl
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0        cl  Ljava/lang/ClassLoader;
            0    6     1       via  Ljava/lang/String;
            4    6     2  provider  Lorg/jboss/logging/LoggerProvider;
    Exceptions:
      throws java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      cl    final
      via   final

  private static org.jboss.logging.LoggerProvider tryLog4j(java.lang.ClassLoader, java.lang.String);
    descriptor: (Ljava/lang/ClassLoader;Ljava/lang/String;)Lorg/jboss/logging/LoggerProvider;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.lang.ClassLoader cl
        start local 1 // java.lang.String via
         0: .line 134
            ldc "org.apache.log4j.LogManager"
            iconst_1
            aload 0 /* cl */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            pop
         1: .line 137
            ldc "org.apache.log4j.config.PropertySetter"
            iconst_1
            aload 0 /* cl */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            pop
         2: .line 138
            new org.jboss.logging.Log4jLoggerProvider
            dup
            invokespecial org.jboss.logging.Log4jLoggerProvider.<init>:()V
            astore 2 /* provider */
        start local 2 // org.jboss.logging.LoggerProvider provider
         3: .line 139
            aload 2 /* provider */
            aload 1 /* via */
            invokestatic org.jboss.logging.LoggerProviders.logProvider:(Lorg/jboss/logging/LoggerProvider;Ljava/lang/String;)V
         4: .line 140
            aload 2 /* provider */
            areturn
        end local 2 // org.jboss.logging.LoggerProvider provider
        end local 1 // java.lang.String via
        end local 0 // java.lang.ClassLoader cl
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0        cl  Ljava/lang/ClassLoader;
            0    5     1       via  Ljava/lang/String;
            3    5     2  provider  Lorg/jboss/logging/LoggerProvider;
    Exceptions:
      throws java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      cl    final
      via   final

  private static org.jboss.logging.LoggerProvider tryJBossLogManager(java.lang.ClassLoader, java.lang.String);
    descriptor: (Ljava/lang/ClassLoader;Ljava/lang/String;)Lorg/jboss/logging/LoggerProvider;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // java.lang.ClassLoader cl
        start local 1 // java.lang.String via
         0: .line 144
            invokestatic java.util.logging.LogManager.getLogManager:()Ljava/util/logging/LogManager;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 2 /* logManagerClass */
        start local 2 // java.lang.Class logManagerClass
         1: .line 145
            aload 2 /* logManagerClass */
            ldc "org.jboss.logmanager.LogManager"
            iconst_0
            aload 0 /* cl */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            if_acmpne 6
         2: .line 146
            ldc "org.jboss.logmanager.Logger$AttachmentKey"
            iconst_1
            aload 0 /* cl */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            aload 2 /* logManagerClass */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            if_acmpne 6
         3: .line 147
            new org.jboss.logging.JBossLogManagerProvider
            dup
            invokespecial org.jboss.logging.JBossLogManagerProvider.<init>:()V
            astore 3 /* provider */
        start local 3 // org.jboss.logging.LoggerProvider provider
         4: .line 148
            aload 3 /* provider */
            aload 1 /* via */
            invokestatic org.jboss.logging.LoggerProviders.logProvider:(Lorg/jboss/logging/LoggerProvider;Ljava/lang/String;)V
         5: .line 149
            aload 3 /* provider */
            areturn
        end local 3 // org.jboss.logging.LoggerProvider provider
         6: .line 151
      StackMap locals: java.lang.Class
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            invokespecial java.lang.IllegalStateException.<init>:()V
            athrow
        end local 2 // java.lang.Class logManagerClass
        end local 1 // java.lang.String via
        end local 0 // java.lang.ClassLoader cl
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0               cl  Ljava/lang/ClassLoader;
            0    7     1              via  Ljava/lang/String;
            1    7     2  logManagerClass  Ljava/lang/Class<+Ljava/util/logging/LogManager;>;
            4    6     3         provider  Lorg/jboss/logging/LoggerProvider;
    Exceptions:
      throws java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      cl    final
      via   final

  private static void logProvider(org.jboss.logging.LoggerProvider, java.lang.String);
    descriptor: (Lorg/jboss/logging/LoggerProvider;Ljava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jboss.logging.LoggerProvider provider
        start local 1 // java.lang.String via
         0: .line 156
            aload 0 /* provider */
            ldc Lorg/jboss/logging/LoggerProviders;
            invokevirtual java.lang.Class.getPackage:()Ljava/lang/Package;
            invokevirtual java.lang.Package.getName:()Ljava/lang/String;
            invokeinterface org.jboss.logging.LoggerProvider.getLogger:(Ljava/lang/String;)Lorg/jboss/logging/Logger;
            astore 2 /* logger */
        start local 2 // org.jboss.logging.Logger logger
         1: .line 157
            aload 1 /* via */
            ifnonnull 4
         2: .line 158
            aload 2 /* logger */
            ldc "Logging Provider: %s"
            aload 0 /* provider */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual org.jboss.logging.Logger.debugf:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 159
            goto 5
         4: .line 160
      StackMap locals: org.jboss.logging.Logger
      StackMap stack:
            aload 2 /* logger */
            ldc "Logging Provider: %s found via %s"
            aload 0 /* provider */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 1 /* via */
            invokevirtual org.jboss.logging.Logger.debugf:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 162
      StackMap locals:
      StackMap stack:
            return
        end local 2 // org.jboss.logging.Logger logger
        end local 1 // java.lang.String via
        end local 0 // org.jboss.logging.LoggerProvider provider
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0  provider  Lorg/jboss/logging/LoggerProvider;
            0    6     1       via  Ljava/lang/String;
            1    6     2    logger  Lorg/jboss/logging/Logger;
    MethodParameters:
          Name  Flags
      provider  final
      via       final

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jboss.logging.LoggerProviders this
         0: .line 164
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 165
            return
        end local 0 // org.jboss.logging.LoggerProviders this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/jboss/logging/LoggerProviders;
}
SourceFile: "LoggerProviders.java"
NestMembers:
  org.jboss.logging.LoggerProviders$1
InnerClasses:
  org.jboss.logging.LoggerProviders$1