private static void ReadConfiguration(string path, LogAdministrator logAdministrator) { var xmlSerializer = new XmlSerializer(typeof(Configurations)); Configurations fileConfigurations; using (var streamReader = new StreamReader(path)) { fileConfigurations = xmlSerializer.Deserialize(streamReader) as Configurations; } logAdministrator.SetLogLevel(fileConfigurations.LogLevel); foreach (var config in fileConfigurations.Destinations) { var parameterDictionary = config.Parameters .ToDictionary(parameter => parameter.Name, parameter => parameter.Value); logAdministrator.SetDestinationConfiguration(config.Name, parameterDictionary); if (!string.IsNullOrWhiteSpace(config.CollectMiddleware?.Name)) { logAdministrator.SetCollectMiddleware(config.Name, config.CollectMiddleware?.Name); } if (config.Middlewares != null) { var names = config.Middlewares .Select(m => m.Name) .Where(m => !string.IsNullOrWhiteSpace(m)); logAdministrator.SetMiddlewareNames(config.Name, names); } } }
public void IsEnabledMustReturnCorrectLogLevelEnabled() { using var loggerFactory = new LoggerFactory(); LogAdministrator logAdministrator = null; loggerFactory.AddNajlotLog((administrator) => { logAdministrator = administrator.AddConsoleDestination(); }); logAdministrator.SetLogLevel(LogLevel.Trace); var logger = loggerFactory.CreateLogger("default"); Assert.True(logger.IsEnabled(Microsoft.Extensions.Logging.LogLevel.Trace)); logAdministrator.SetLogLevel(LogLevel.Debug); Assert.False(logger.IsEnabled(Microsoft.Extensions.Logging.LogLevel.Trace)); Assert.True(logger.IsEnabled(Microsoft.Extensions.Logging.LogLevel.Debug)); logAdministrator.SetLogLevel(LogLevel.Info); Assert.False(logger.IsEnabled(Microsoft.Extensions.Logging.LogLevel.Debug)); Assert.True(logger.IsEnabled(Microsoft.Extensions.Logging.LogLevel.Information)); logAdministrator.SetLogLevel(LogLevel.Warn); Assert.False(logger.IsEnabled(Microsoft.Extensions.Logging.LogLevel.Information)); Assert.True(logger.IsEnabled(Microsoft.Extensions.Logging.LogLevel.Warning)); logAdministrator.SetLogLevel(LogLevel.Error); Assert.False(logger.IsEnabled(Microsoft.Extensions.Logging.LogLevel.Warning)); Assert.True(logger.IsEnabled(Microsoft.Extensions.Logging.LogLevel.Error)); logAdministrator.SetLogLevel(LogLevel.Fatal); Assert.False(logger.IsEnabled(Microsoft.Extensions.Logging.LogLevel.Error)); Assert.True(logger.IsEnabled(Microsoft.Extensions.Logging.LogLevel.Critical)); logAdministrator.SetLogLevel(LogLevel.Info); logger.LogInformation("Done!"); }