static IHostBuilder DoUseMonitoring(IHostBuilder builder, GrandOutput?grandOutput, Func <IConfiguration, IConfigurationSection> configSection) { var initializer = new GrandOutputConfigurationInitializer(grandOutput); initializer.ConfigureBuilder(builder, configSection); return(builder); }
/// <summary> /// Initialize from IConfigurationSection instead of configurationPath. /// </summary> static IWebHostBuilder DoUseMonitoring(IWebHostBuilder builder, GrandOutput grandOutput, IConfigurationSection configuration) { var initializer = new GrandOutputConfigurationInitializer(grandOutput); builder.ConfigureLogging((ctx, loggingBuilder) => { initializer.Initialize(ctx.HostingEnvironment, loggingBuilder, configuration); }); return(AddPostInstanciationStartupFilter(builder, initializer)); }
static IWebHostBuilder DoUseMonitoring(IWebHostBuilder builder, GrandOutput grandOutput, string configurationPath) { // Three steps initialization: // First creates the initializer instance. var initializer = new GrandOutputConfigurationInitializer(grandOutput); builder.ConfigureLogging((ctx, loggingBuilder) => { var section = ctx.Configuration.GetSection(configurationPath); // Second, give it the environment and its section. initializer.Initialize(ctx.HostingEnvironment, loggingBuilder, section); }); // Now, registers the PostInstanciationFilter as a transient object. // This startup filter will inject the Application service IApplicationLifetime. return(AddPostInstanciationStartupFilter(builder, initializer)); }
static IWebHostBuilder AddPostInstanciationStartupFilter(IWebHostBuilder builder, GrandOutputConfigurationInitializer initializer) { return(builder.ConfigureServices(services => { services.AddTransient <IStartupFilter>(_ => new PostInstanciationFilter(initializer)); })); }
public PostInstanciationFilter(GrandOutputConfigurationInitializer initalizer) { _initalizer = initalizer; }