Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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
                }
            };
        }
Exemplo n.º 4
0
        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[])>();
Exemplo n.º 5
0
 public void Build(ZeroLogConfiguration config)
 {
     Build((IHierarchicalConfiguration)config);
 }