in src/log4net/Config/XmlConfigurator.cs [606:668]
private static void InternalConfigure(ILoggerRepository repository, Uri configUri)
{
LogLog.Debug(declaringType, "configuring repository [" + repository.Name + "] using URI ["+configUri+"]");
if (configUri == 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 ex)
{
LogLog.Error(declaringType, "Failed to create WebRequest for URI ["+configUri+"]", ex);
}
if (configRequest != null)
{
#if !NETCF_1_0
// authentication may be required, set client to use default credentials
try
{
configRequest.Credentials = CredentialCache.DefaultCredentials;
}
catch
{
// ignore security exception
}
#endif
try
{
#if NETSTANDARD
using WebResponse response = configRequest.GetResponseAsync().GetAwaiter().GetResult();
#else
using WebResponse response = configRequest.GetResponse();
#endif
if (response != null)
{
using var configStream = response.GetResponseStream();
InternalConfigure(repository, configStream);
}
}
catch(Exception ex)
{
LogLog.Error(declaringType, "Failed to request config from URI ["+configUri+"]", ex);
}
}
}
}
}