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