Пример #1
0
        public void should_resolve_appender_from_assembly_qualified_name()
        {
            var appenderDef = new AppenderDefinition
            {
                Name               = "ExtApp1",
                AppenderTypeName   = "ZeroLog.Tests.ExternalAppender.TestAppender, ZeroLog.Tests.ExternalAppender",
                AppenderJsonConfig = new DefaultAppenderConfig {
                    PrefixPattern = "[%level] @ %time - %logger: "
                }
            };

            var config = new ZeroLogJsonConfiguration
            {
                LogEventBufferSize = 5,
                LogEventQueueSize  = 7,
                RootLogger         = new LoggerDefinition
                {
                    Level = Level.Info,
                    LogEventPoolExhaustionStrategy = LogEventPoolExhaustionStrategy.DropLogMessage,
                    AppenderReferences             = new[] { "ExtApp1" },
                },
                Appenders = new[] { appenderDef },
            };

            var configResolver = new HierarchicalResolver();

            configResolver.Build(config);

            var appenders = configResolver.GetAllAppenders().ToList();

            Assert.AreEqual(1, appenders.Count);
            Assert.AreEqual("ZeroLog.Tests.ExternalAppender.TestAppender", ((GuardedAppender)appenders[0]).Appender.GetType().FullName);
        }
Пример #2
0
        public void should_load_configuration()
        {
            var appenderAConfig = new DefaultAppenderConfig {
                PrefixPattern = "[%level] @ %time - %logger: "
            };
            var appenderBConfig = new DateAndSizeRollingFileAppenderConfig {
                FilePathRoot = "totopath "
            };

            var appenderA = new AppenderDefinition {
                Name = "A", AppenderTypeName = nameof(ConsoleAppender), AppenderJsonConfig = appenderAConfig
            };
            var appenderB = new AppenderDefinition {
                Name = "B", AppenderTypeName = nameof(DateAndSizeRollingFileAppender), AppenderJsonConfig = appenderBConfig
            };

            var config = new ZeroLogJsonConfiguration
            {
                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 = JsonConvert.SerializeObject(config);

            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 == "B").Name).Equals(appenderB.Name);
            Check.That(loadedConfig.Appenders.Single(a => a.Name == "B").AppenderTypeName).Equals(appenderB.AppenderTypeName);

            var appenderALoadedConfig = (DefaultAppenderConfig)AppenderFactory.GetAppenderParameters(loadedConfig.Appenders.Single(a => a.Name == "A"), typeof(DefaultAppenderConfig));

            Check.That(appenderALoadedConfig.PrefixPattern).IsEqualTo(appenderAConfig.PrefixPattern);

            var appenderBLoadedConfig = (DateAndSizeRollingFileAppenderConfig)AppenderFactory.GetAppenderParameters(loadedConfig.Appenders.Single(a => a.Name == "B"), typeof(DateAndSizeRollingFileAppenderConfig));

            Check.That(appenderBLoadedConfig.Extension).IsEqualTo(appenderBConfig.Extension);
            Check.That(appenderBLoadedConfig.PrefixPattern).IsEqualTo(appenderBConfig.PrefixPattern);
            Check.That(appenderBLoadedConfig.FilePathRoot).IsEqualTo(appenderBConfig.FilePathRoot);
            Check.That(appenderBLoadedConfig.MaxFileSizeInBytes).IsEqualTo(appenderBConfig.MaxFileSizeInBytes);
        }
Пример #3
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 ZeroLogJsonConfiguration
            {
                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 SetUp()
        {
            _resolver = new HierarchicalResolver();

            _config            = new ZeroLogJsonConfiguration();
            _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
                }
            };
        }