private void ReloadLogFactoryConfiguration() { var memoryConfig = CreateMemoryConfigConsoleTargetAndRule(); memoryConfig["NLog:Targets:file:type"] = "File"; memoryConfig["NLog:Targets:file:fileName"] = "hello.txt"; memoryConfig["NLog:AutoReload"] = "true"; var configuration = new ConfigurationBuilder().AddInMemoryCollection(memoryConfig).Build(); var logFactory = new LogFactory(); var logConfig = new NLogLoggingConfiguration(configuration.GetSection("NLog"), logFactory); logFactory.Configuration = logConfig; Assert.Equal(2, logFactory.Configuration.LoggingRules[0].Targets.Count); configuration["NLog:Rules:0:writeTo"] = "Console"; logFactory.Configuration = logConfig.Reload(); // Manual Reload Assert.Equal(1, logFactory.Configuration.LoggingRules[0].Targets.Count); configuration["NLog:Rules:0:writeTo"] = "File,Console"; configuration.Reload(); // Automatic Reload Assert.Equal(2, logFactory.Configuration.LoggingRules[0].Targets.Count); logFactory.Dispose(); configuration.Reload(); // Nothing should happen }