private static void InternalConfigure()

in src/log4net/Config/XmlConfigurator.cs [475:531]


  private static void InternalConfigure(ILoggerRepository repository, Uri? configUri)
  {
    LogLog.Debug(_declaringType, $"configuring repository [{repository.Name}] using URI [{configUri}]");

    if (configUri is null)
    {
      LogLog.Error(_declaringType, "Configure called with null 'configUri' parameter");
    }
    else
    {
      if (configUri.IsFile)
      {
        // If URI is local file then call Configure with FileInfo
        InternalConfigure(repository, new FileInfo(configUri.LocalPath));
      }
      else
      {
        // NETCF dose not support WebClient
        WebRequest? configRequest = null;

        try
        {
          configRequest = WebRequest.Create(configUri);
        }
        catch (Exception e) when (!e.IsFatal())
        {
          LogLog.Error(_declaringType, $"Failed to create WebRequest for URI [{configUri}]", e);
        }

        if (configRequest is not null)
        {
          // authentication may be required, set client to use default credentials
          try
          {
            configRequest.Credentials = CredentialCache.DefaultCredentials;
          }
          catch (Exception e) when (!e.IsFatal())
          {
            // ignore security exception
          }
          try
          {
            using WebResponse? response = configRequest.GetResponse();
            if (response is not null)
            {
              using Stream configStream = response.GetResponseStream();
              InternalConfigure(repository, configStream);
            }
          }
          catch (Exception e) when (!e.IsFatal())
          {
            LogLog.Error(_declaringType, $"Failed to request config from URI [{configUri}]", e);
          }
        }
      }
    }
  }