コード例 #1
0
 public LoggersEndpointOwinMiddleware(OwinMiddleware next, LoggersEndpoint endpoint, IEnumerable <IManagementOptions> mgmtOptions, ILogger <LoggersEndpointOwinMiddleware> logger = null)
     : base(next, endpoint, mgmtOptions, new List <HttpMethod> {
     HttpMethod.Get, HttpMethod.Post
 }, false, logger)
 {
     _endpoint = endpoint ?? throw new ArgumentNullException(nameof(endpoint));
 }
コード例 #2
0
        public static void ConfigureLoggerEndpoint(IConfiguration configuration, ILoggerProvider loggerProvider, ILoggerFactory loggerFactory = null)
        {
            var ep      = new LoggersEndpoint(new LoggersOptions(configuration), loggerProvider, CreateLogger <LoggersEndpoint>(loggerFactory));
            var handler = new LoggersHandler(ep, SecurityService, CreateLogger <LoggersHandler>(loggerFactory));

            ConfiguredHandlers.Add(handler);
        }
コード例 #3
0
        public void GetLoggerConfigurations_NullProvider()
        {
            LoggersEndpoint ep     = new LoggersEndpoint(new LoggersOptions(), null, null);
            var             result = ep.GetLoggerConfigurations(null);

            Assert.NotNull(result);
        }
コード例 #4
0
        public void IsLoggersRequest_ReturnsExpected()
        {
            var opts = new LoggersOptions();

            var ep     = new LoggersEndpoint(opts, null);
            var middle = new LoggersEndpointMiddleware(null, ep);

            var context = CreateRequest("GET", "/loggers");

            Assert.True(middle.IsLoggerRequest(context));

            var context2 = CreateRequest("PUT", "/loggers");

            Assert.False(middle.IsLoggerRequest(context2));

            var context3 = CreateRequest("GET", "/badpath");

            Assert.False(middle.IsLoggerRequest(context3));

            var context4 = CreateRequest("POST", "/loggers");

            Assert.True(middle.IsLoggerRequest(context4));

            var context5 = CreateRequest("POST", "/badpath");

            Assert.False(middle.IsLoggerRequest(context5));

            var context6 = CreateRequest("POST", "/loggers/Foo.Bar.Class");

            Assert.True(middle.IsLoggerRequest(context6));

            var context7 = CreateRequest("POST", "/badpath/Foo.Bar.Class");

            Assert.False(middle.IsLoggerRequest(context7));
        }
コード例 #5
0
        public void SetLogLevel_ThrowsIfNulls()
        {
            LoggersEndpoint ep = new LoggersEndpoint(new LoggersOptions());

            Assert.Throws <ArgumentException>(() => ep.SetLogLevel(new TestLogProvider(), null, null));
            Assert.Throws <ArgumentException>(() => ep.SetLogLevel(new TestLogProvider(), "foobar", null));
        }
コード例 #6
0
        /// <summary>
        /// Add Loggers actuator endpoint to OWIN Pipeline
        /// </summary>
        /// <param name="builder">OWIN <see cref="IAppBuilder" /></param>
        /// <param name="config"><see cref="IConfiguration"/> of application for configuring loggers endpoint</param>
        /// <param name="loggerProvider">Provider of loggers to report on and configure</param>
        /// <param name="loggerFactory">For logging within the middleware</param>
        /// <returns>OWIN <see cref="IAppBuilder" /> with Loggers Endpoint added</returns>
        public static IAppBuilder UseLoggersActuator(this IAppBuilder builder, IConfiguration config, ILoggerProvider loggerProvider, ILoggerFactory loggerFactory = null)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            if (config == null)
            {
                throw new ArgumentNullException(nameof(config));
            }

            if (loggerProvider == null)
            {
                throw new ArgumentNullException(nameof(loggerProvider));
            }

            var options     = new LoggersEndpointOptions(config);
            var mgmtOptions = ManagementOptions.Get(config);

            foreach (var mgmt in mgmtOptions)
            {
                mgmt.EndpointOptions.Add(options);
            }

            var endpoint = new LoggersEndpoint(options, loggerProvider as IDynamicLoggerProvider, loggerFactory?.CreateLogger <LoggersEndpoint>());
            var logger   = loggerFactory?.CreateLogger <LoggersEndpointOwinMiddleware>();

            return(builder.Use <LoggersEndpointOwinMiddleware>(endpoint, mgmtOptions, logger));
        }
コード例 #7
0
        public void GetLoggerConfiguration_CallsProvider()
        {
            var ep       = new LoggersEndpoint(new LoggersEndpointOptions(), (IDynamicLoggerProvider)null, null);
            var provider = new TestLogProvider();
            var result   = ep.GetLoggerConfigurations(provider);

            Assert.NotNull(result);
            Assert.True(provider.GetLoggerConfigurationsCalled);
        }
コード例 #8
0
        public void GetLoggerConfiguration_CallsProvider()
        {
            LoggersEndpoint ep       = new LoggersEndpoint(new LoggersOptions());
            var             provider = new TestLogProvider();
            var             result   = ep.GetLoggerConfigurations(provider);

            Assert.NotNull(result);
            Assert.True(provider.GetLoggerConfigurationsCalled);
        }
コード例 #9
0
        public void SetLogLevel_CallsProvider()
        {
            var ep       = new LoggersEndpoint(new LoggersEndpointOptions(), (IDynamicLoggerProvider)null, null);
            var provider = new TestLogProvider();

            ep.SetLogLevel(provider, "foobar", "WARN");

            Assert.Equal("foobar", provider.Category);
            Assert.Equal(LogLevel.Warning, provider.Level);
        }
コード例 #10
0
        public static void UseLoggerActuator(IConfiguration configuration, ILoggerProvider loggerProvider, ILoggerFactory loggerFactory = null)
        {
            var options = new LoggersEndpointOptions(configuration);

            _mgmtOptions.RegisterEndpointOptions(configuration, options);

            var ep      = new LoggersEndpoint(options, loggerProvider as IDynamicLoggerProvider, CreateLogger <LoggersEndpoint>(loggerFactory));
            var handler = new LoggersHandler(ep, SecurityServices, _mgmtOptions, CreateLogger <LoggersHandler>(loggerFactory));

            ConfiguredHandlers.Add(handler);
        }
コード例 #11
0
        public void LoggersEndpointMiddleware_PathAndVerbMatching_ReturnsExpected()
        {
            var opts   = new LoggersOptions();
            var ep     = new LoggersEndpoint(opts, null);
            var middle = new LoggersEndpointOwinMiddleware(null, ep);

            Assert.True(middle.RequestVerbAndPathMatch("GET", "/loggers"));
            Assert.False(middle.RequestVerbAndPathMatch("PUT", "/loggers"));
            Assert.False(middle.RequestVerbAndPathMatch("GET", "/badpath"));
            Assert.True(middle.RequestVerbAndPathMatch("POST", "/loggers"));
            Assert.False(middle.RequestVerbAndPathMatch("POST", "/badpath"));
            Assert.True(middle.RequestVerbAndPathMatch("POST", "/loggers/Foo.Bar.Class"));
            Assert.False(middle.RequestVerbAndPathMatch("POST", "/badpath/Foo.Bar.Class"));
        }
コード例 #12
0
        public void LoggersEndpointMiddleware_PathAndVerbMatching_ReturnsExpected()
        {
            var opts   = new LoggersEndpointOptions();
            var mopts  = TestHelpers.GetManagementOptions(opts);
            var ep     = new LoggersEndpoint(opts, (IDynamicLoggerProvider)null);
            var middle = new LoggersEndpointMiddleware(null, ep, mopts);

            Assert.True(middle.RequestVerbAndPathMatch("GET", "/cloudfoundryapplication/loggers"));
            Assert.False(middle.RequestVerbAndPathMatch("PUT", "/cloudfoundryapplication/loggers"));
            Assert.False(middle.RequestVerbAndPathMatch("GET", "/cloudfoundryapplication/badpath"));
            Assert.True(middle.RequestVerbAndPathMatch("POST", "/cloudfoundryapplication/loggers"));
            Assert.False(middle.RequestVerbAndPathMatch("POST", "/cloudfoundryapplication/badpath"));
            Assert.True(middle.RequestVerbAndPathMatch("POST", "/cloudfoundryapplication/loggers/Foo.Bar.Class"));
            Assert.False(middle.RequestVerbAndPathMatch("POST", "/cloudfoundryapplication/badpath/Foo.Bar.Class"));
        }
コード例 #13
0
        public void DoInvoke_NoChangeRequest_ReturnsExpected()
        {
            var ep       = new LoggersEndpoint(new LoggersEndpointOptions(), (IDynamicLoggerProvider)null, null);
            var provider = new TestLogProvider();

            var result = ep.DoInvoke(provider, null);

            Assert.NotNull(result);
            Assert.True(result.ContainsKey("levels"));
            var levs = result["levels"] as List <string>;

            Assert.NotNull(levs);
            Assert.Equal(7, levs.Count);

            Assert.True(result.ContainsKey("loggers"));
            var loggers = result["loggers"] as Dictionary <string, LoggerLevels>;

            Assert.NotNull(loggers);
            Assert.Empty(loggers);
        }
コード例 #14
0
        /// <summary>
        /// Add Loggers actuator endpoint to OWIN Pipeline
        /// </summary>
        /// <param name="builder">OWIN <see cref="IAppBuilder" /></param>
        /// <param name="config"><see cref="IConfiguration"/> of application for configuring loggers endpoint</param>
        /// <param name="loggerProvider">Provider of loggers to report on and configure</param>
        /// <param name="loggerFactory">For logging within the middleware</param>
        /// <returns>OWIN <see cref="IAppBuilder" /> with Loggers Endpoint added</returns>
        public static IAppBuilder UseLoggersActuator(this IAppBuilder builder, IConfiguration config, ILoggerProvider loggerProvider, ILoggerFactory loggerFactory = null)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            if (config == null)
            {
                throw new ArgumentNullException(nameof(config));
            }

            if (loggerProvider == null)
            {
                throw new ArgumentNullException(nameof(loggerProvider));
            }

            var endpoint = new LoggersEndpoint(new LoggersOptions(config), loggerProvider as IDynamicLoggerProvider, loggerFactory?.CreateLogger <LoggersEndpoint>());
            var logger   = loggerFactory?.CreateLogger <LoggersEndpointOwinMiddleware>();

            return(builder.Use <LoggersEndpointOwinMiddleware>(endpoint, logger));
        }
コード例 #15
0
        public void AddLevels_AddsExpected()
        {
            var dict = new Dictionary <string, object>();

            var ep = new LoggersEndpoint(new LoggersEndpointOptions(), (IDynamicLoggerProvider)null, null);

            ep.AddLevels(dict);

            Assert.Single(dict);
            Assert.True(dict.ContainsKey("levels"));
            var levs = dict["levels"] as List <string>;

            Assert.NotNull(levs);
            Assert.Equal(7, levs.Count);

            Assert.Contains("OFF", levs);
            Assert.Contains("FATAL", levs);
            Assert.Contains("ERROR", levs);
            Assert.Contains("WARN", levs);
            Assert.Contains("INFO", levs);
            Assert.Contains("DEBUG", levs);
            Assert.Contains("TRACE", levs);
        }
コード例 #16
0
 public LoggersHandler(LoggersEndpoint endpoint, ISecurityService securityService, ILogger <LoggersHandler> logger = null)
     : base(endpoint, securityService, new List <HttpMethod> {
     HttpMethod.Get, HttpMethod.Post
 }, false, logger)
 {
 }
コード例 #17
0
        public void SetLogLevel_NullProvider()
        {
            LoggersEndpoint ep = new LoggersEndpoint(new LoggersOptions(), null, null);

            ep.SetLogLevel(null, null, null);
        }
コード例 #18
0
 public LoggersHandler(LoggersEndpoint endpoint, IEnumerable <ISecurityService> securityServices, IEnumerable <IManagementOptions> mgmtOptions, ILogger <LoggersHandler> logger = null)
     : base(endpoint, securityServices, mgmtOptions, new List <HttpMethod> {
     HttpMethod.Get, HttpMethod.Post
 }, false, logger)
 {
 }
コード例 #19
0
        public void SetLogLevel_ThrowsIfNullName()
        {
            var ep = new LoggersEndpoint(new LoggersEndpointOptions(), (IDynamicLoggerProvider)null, null);

            Assert.Throws <ArgumentException>(() => ep.SetLogLevel(new TestLogProvider(), null, null));
        }
コード例 #20
0
        public void SetLogLevel_NullProvider()
        {
            var ep = new LoggersEndpoint(new LoggersEndpointOptions(), (IDynamicLoggerProvider)null, null);

            ep.SetLogLevel(null, null, null);
        }