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)); }
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); }
public void GetLoggerConfigurations_NullProvider() { LoggersEndpoint ep = new LoggersEndpoint(new LoggersOptions(), null, null); var result = ep.GetLoggerConfigurations(null); Assert.NotNull(result); }
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)); }
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)); }
/// <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)); }
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); }
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); }
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); }
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); }
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")); }
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")); }
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); }
/// <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)); }
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); }
public LoggersHandler(LoggersEndpoint endpoint, ISecurityService securityService, ILogger <LoggersHandler> logger = null) : base(endpoint, securityService, new List <HttpMethod> { HttpMethod.Get, HttpMethod.Post }, false, logger) { }
public void SetLogLevel_NullProvider() { LoggersEndpoint ep = new LoggersEndpoint(new LoggersOptions(), null, null); ep.SetLogLevel(null, null, null); }
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) { }
public void SetLogLevel_ThrowsIfNullName() { var ep = new LoggersEndpoint(new LoggersEndpointOptions(), (IDynamicLoggerProvider)null, null); Assert.Throws <ArgumentException>(() => ep.SetLogLevel(new TestLogProvider(), null, null)); }
public void SetLogLevel_NullProvider() { var ep = new LoggersEndpoint(new LoggersEndpointOptions(), (IDynamicLoggerProvider)null, null); ep.SetLogLevel(null, null, null); }