/// <summary> /// Adds a file logger named 'File' to the factory. /// </summary> /// <param name="builder">The <see cref="ILoggingBuilder"/> to use.</param> public static ILoggingBuilder AddFile(this ILoggingBuilder builder) { builder.AddConfiguration(); builder.AddFileFormatter<JsonFileFormatter, JsonFileFormatterOptions>(); builder.AddFileFormatter<SimpleFileFormatter, SimpleFileFormatterOptions>(); builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton<ILoggerProvider, FileLoggerProvider>()); LoggerProviderOptions.RegisterProviderOptions<FileLoggerOptions, FileLoggerProvider>(builder.Services); return builder; }
/// <summary> /// Adds a custom File logger formatter 'TFormatter' to be configured with options 'TOptions'. /// </summary> /// <param name="builder">The <see cref="ILoggingBuilder"/> to use.</param> /// <param name="configure">A delegate to configure options 'TOptions' for custom formatter 'TFormatter'.</param> public static ILoggingBuilder AddFileFormatter<TFormatter, TOptions>(this ILoggingBuilder builder, Action<TOptions> configure) where TOptions : FileFormatterOptions where TFormatter : FileFormatter { if (configure == null) { throw new ArgumentNullException(nameof(configure)); } builder.AddFileFormatter<TFormatter, TOptions>(); builder.Services.Configure(configure); return builder; }