code: protected static void lazyInit() {
          // noinspection DoubleCheckedLocking
          if (instance == null) {
              try {
                  STARTUP_LOCK.lockInterruptibly();
                  try {
                      if (instance == null) {
                          instance = new ProviderUtil();
                      }
                  } finally {
                      STARTUP_LOCK.unlock();
                  }
              } catch (final InterruptedException e) {
                  LOGGER.fatal("Interrupted before Log4j Providers could be loaded.", e);
                  Thread.currentThread().interrupt();
              }
          }
      }
docs: Lazily initializes the ProviderUtil singleton.
  
  @since 2.1