public void should_load_configuration() { var appenderA = new AppenderDefinition { Name = "A", AppenderTypeName = nameof(ConsoleAppender), AppenderJsonConfig = JSON.Serialize(new DefaultAppenderConfig { PrefixPattern = "[%level] @ %time - %logger: " }) }; var appenderB = new AppenderDefinition { Name = "B", AppenderTypeName = nameof(DateAndSizeRollingFileAppender), AppenderJsonConfig = JSON.Serialize(new DateAndSizeRollingFileAppenderConfig { FilePathRoot = "totopath " }) }; var config = new ZeroLogConfiguration { LogEventBufferSize = 5, LogEventQueueSize = 7, RootLogger = new LoggerDefinition { Level = Level.Warn, LogEventPoolExhaustionStrategy = LogEventPoolExhaustionStrategy.DropLogMessage, AppenderReferences = new [] { "A" }, }, Appenders = new[] { appenderA, appenderB }, Loggers = new[] { new LoggerDefinition { Name = "Abc.Zebus", Level = Level.Debug, AppenderReferences = new [] { "B" } } } }; var configJson = JSON.Serialize(config, Options.PrettyPrint); var loadedConfig = JsonConfigurator.DeserializeConfiguration(configJson); Check.That(loadedConfig.LogEventBufferSize).Equals(config.LogEventBufferSize); Check.That(loadedConfig.LogEventQueueSize).Equals(config.LogEventQueueSize); Check.That(loadedConfig.RootLogger.Level).Equals(config.RootLogger.Level); Check.That(loadedConfig.RootLogger.AppenderReferences.Single()).Equals(config.RootLogger.AppenderReferences.Single()); Check.That(loadedConfig.Appenders.Single(a => a.Name == "A").Name).Equals(appenderA.Name); Check.That(loadedConfig.Appenders.Single(a => a.Name == "A").AppenderTypeName).Equals(appenderA.AppenderTypeName); Check.That(loadedConfig.Appenders.Single(a => a.Name == "A").AppenderJsonConfig).Equals(appenderA.AppenderJsonConfig); Check.That(loadedConfig.Appenders.Single(a => a.Name == "B").Name).Equals(appenderB.Name); Check.That(loadedConfig.Appenders.Single(a => a.Name == "B").AppenderTypeName).Equals(appenderB.AppenderTypeName); Check.That(loadedConfig.Appenders.Single(a => a.Name == "B").AppenderJsonConfig).Equals(appenderB.AppenderJsonConfig); }
public void Build(ZeroLogConfiguration config) { var oldRoot = _root; var newRoot = new Node(); foreach (var loggerWithAppenders in CreateLoggersWithAppenders(config).OrderBy(x => x.logger.Name)) { AddNode(newRoot, loggerWithAppenders.logger, loggerWithAppenders.appenders); } ApplyEncodingToAllAppenders(newRoot); _root = newRoot; Updated(); oldRoot?.Close(); }
public void SetUp() { _resolver = new HierarchicalResolver(); _config = new ZeroLogConfiguration(); _config.RootLogger = new LoggerDefinition(string.Empty, Level.Info, false, LogEventPoolExhaustionStrategy.Default, "A"); _config.Appenders = new[] { new AppenderDefinition { Name = "A", AppenderTypeName = typeof(TestAppender).FullName }, new AppenderDefinition { Name = "B", AppenderTypeName = typeof(TestAppender).FullName }, new AppenderDefinition { Name = "C", AppenderTypeName = typeof(TestAppender).FullName } }; }
private static List <(LoggerDefinition logger, IAppender[] appenders)> CreateLoggersWithAppenders(ZeroLogConfiguration config) { var appendersByNames = config.Appenders.ToDictionary(x => x.Name, CreateAppender); var loggerWithAppenders = new List <(LoggerDefinition, IAppender[])>();
public void Build(ZeroLogConfiguration config) { Build((IHierarchicalConfiguration)config); }