Пример #1
0
        public void Settings_GetTheRightLogLevel()
        {
            var expected = LogLevel.Trace;

            var section = new Mock <IConfigurationSection>();

            section.SetupGet(x => x["MyTest"])
            .Returns("INFOrmAtiOn");
            section.SetupGet(x => x["Default"])
            .Returns(expected.ToString());

            var configuration = new Mock <IConfiguration>();

            configuration.Setup(x => x.GetSection("LogLevel"))
            .Returns(section.Object);

            var settings = new ServiceMonitoringLoggerConfig(configuration.Object);

            // Act
            LogLevel logLevel = LogLevel.None;

            settings.TryGetSwitch("Default", out logLevel);

            // Assert
            Assert.AreEqual(expected, logLevel);
        }
        /// <summary>
        /// Add Abcam Logging provider
        /// </summary>
        /// <param name="configuration"></param>
        /// <param name="httpClient">Used to perform the http request to services_monitoring</param>
        /// <param name="fallbackLoggerProvider">fallback provider in case services_monitoring is down or misbehaving</param>
        /// <returns></returns>
        public static ILoggingBuilder AddHttpServiceLoggingWithLoggerFallback(this ILoggingBuilder builder, IConfiguration configuration, HttpClient httpClient, ILoggerProvider fallbackLoggerProvider)
        {
            var config = new ServiceMonitoringLoggerConfig(configuration.GetSection("Logging"));

            builder.AddProvider(new ServiceMonitoringLoggerProvider(config, httpClient, fallbackLoggerProvider));

            return(builder);
        }
        /// <summary>
        /// Add Abcam Logging provider with EventLogLoggerProvider as fallback in case services_monitoring is down or misbehaving
        /// </summary>
        /// <param name="configuration"></param>
        /// <param name="httpClient">Used to perform the http request to services_monitoring</param>
        /// <returns></returns>
        public static ILoggingBuilder AddHttpServiceLogging(this ILoggingBuilder builder, IConfiguration configuration, HttpClient httpClient)
        {
            var config = new ServiceMonitoringLoggerConfig(configuration.GetSection("Logging"));

            builder.AddProvider(new ServiceMonitoringLoggerProvider(config, httpClient, new EventLogLoggerProvider()));

            return(builder);
        }
Пример #4
0
        public void ServiceMonitoringLoggerConfigTest()
        {
            // arrange
            configuration.Setup(c => c["ApplicationName"]).Returns("ApplicationName");
            configuration.Setup(c => c["ServiceMonitoring:LoggingEndpoint"]).Returns("https://LoggingEndpoint");

            var logConfigSection = new Mock <IConfigurationSection>();

            logConfigSection.SetupGet(v => v.Value).Returns("{ \"Default\": \"Warning\", \"Microsoft\": \"Warning\", \"Microsoft.Hosting.Lifetime\": \"Information\" }");
            configuration.Setup(c => c.GetSection("LogLevel")).Returns(logConfigSection.Object);

            // act
            var config = new ServiceMonitoringLoggerConfig(configuration.Object);

            // assert
            Assert.AreEqual("ApplicationName", config.ApplicationName);
            Assert.AreEqual("https://LoggingEndpoint", config.LoggingEndpoint);
        }
Пример #5
0
        public void Settings_LogLevelIgnoreCase()
        {
            var section = new Mock <IConfigurationSection>();

            section.SetupGet(x => x["MyTest"])
            .Returns("INFOrmAtiOn");

            var configuration = new Mock <IConfiguration>();

            configuration.Setup(x => x.GetSection("LogLevel"))
            .Returns(section.Object);

            var settings = new ServiceMonitoringLoggerConfig(configuration.Object);

            // Act
            LogLevel logLevel = LogLevel.None;

            settings.TryGetSwitch("MyTest", out logLevel);

            // Assert
            Assert.AreEqual(LogLevel.Information, logLevel);
        }
        public void FallbackToDefaultForNotMatchingProviderFilters(string categoryName, LogLevel actuaLogLevel)
        {
            // Arrange
            var json =
                @"{
                  ""LogLevel"": {
                    ""Default"": ""Warning"",
                    ""OverApps.Logging.SomethingElse"": ""Trace"",
                  },
                  ""ApplicationName"" : ""TestApp""
                }";

            var config       = TestConfiguration.Create(() => json);
            var loggerConfig = new ServiceMonitoringLoggerConfig(config);

            // Act
            using var provider = new ServiceMonitoringLoggerProvider(loggerConfig, null);
            var logger = provider.CreateLogger(categoryName);

            // Assert
            Assert.True(logger.IsEnabled(actuaLogLevel));
        }