/// <summary> /// Creates new instance of <see cref="ILoggerFactory"/> configured using provided <paramref name="configure"/> delegate. /// </summary> /// <param name="configure">A delegate to configure the <see cref="ILoggingBuilder"/>.</param> /// <returns>The <see cref="ILoggerFactory"/> that was created.</returns> public static ILoggerFactory Create(LoggingBuilderDelegate configure) { var serviceCollection = new ServiceCollection(); serviceCollection.AddLogging(configure); ServiceProvider serviceProvider = serviceCollection.BuildServiceProvider(); ILoggerFactory loggerFactory = (LoggerFactory)serviceProvider.GetService(typeof(ILoggerFactory)); return(loggerFactory); }
/// <summary> /// Adds logging services to the specified <see cref="IServiceCollection" />. /// </summary> /// <param name="services">The <see cref="IServiceCollection" /> to add services to.</param> /// <param name="configure">The <see cref="ILoggingBuilder"/> configuration delegate.</param> /// <returns>The <see cref="IServiceCollection"/> so that additional calls can be chained.</returns> public static IServiceCollection AddLogging(this IServiceCollection services, LoggingBuilderDelegate configure) { if (services == null) { throw new ArgumentNullException(nameof(services)); } services.AddSingleton(typeof(ILoggerFactory), typeof(LoggerFactory)); services.AddSingleton(typeof(ILogger), typeof(Logger)); configure(new LoggingBuilder(services)); return(services); }