public static ILoggingBuilder AddAnsiConsoleFormatter <TFormatter, TOptions>(this ILoggingBuilder builder, Action <TOptions> configure) where TOptions : AnsiConsoleFormatterOptions where TFormatter : class, IConsoleFormatter { if (configure == null) { throw new ArgumentNullException(nameof(configure)); } builder.AddAnsiConsoleFormatter <TFormatter, TOptions>(); builder.Services.Configure(configure); return(builder); }
public static ILoggingBuilder AddAnsiConsole(this ILoggingBuilder builder) { builder.AddConfiguration(); builder.AddAnsiConsoleFormatter <DefaultAnsiConsoleFormatter, DefaultAnsiConsoleFormatterOptions>(); //TODO : more console formatters builder.Services.TryAddSingleton <AnsiConsoleLoggerProvider>(); builder.Services.TryAddEnumerable(ServiceDescriptor .Singleton <ILoggerProvider, AnsiConsoleLoggerProvider>(provider => provider.GetRequiredService <AnsiConsoleLoggerProvider>())); LoggerProviderOptions .RegisterProviderOptions <AnsiConsoleLoggerOptions, AnsiConsoleLoggerProvider>(builder.Services); return(builder); }