/// <summary> /// This is the "normal" way to add provider to the list, some DI magic, but in essence it just registers another instance for ILoggerProvider /// </summary> /// <param name="builder"></param> /// <returns></returns> public static ILoggingBuilder AddInMemoryDebug(this ILoggingBuilder builder) { builder.AddConfiguration(); builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton <ILoggerProvider, InMemoryDebugProvider>()); LoggerProviderOptions.RegisterProviderOptions <InMemoryDebugOptions, InMemoryDebugProvider>(builder.Services); return(builder); }
/// <summary> /// Adds a console logger named 'Console' to the factory. /// </summary> /// <param name="builder">The <see cref="ILoggingBuilder"/> to use.</param> public static ILoggingBuilder AddPdmConsole(this ILoggingBuilder builder) { builder.AddConfiguration(); builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton <ILoggerProvider, PdmConsoleLoggerProvider>()); LoggerProviderOptions.RegisterProviderOptions <PdmConsoleLoggerOptions, PdmConsoleLoggerProvider>(builder.Services); return(builder); }
/// <param name="fileNameSelector">DateTimeOffset is date of file open time(UTC), int is number sequence.</param> /// <param name="timestampPattern">DateTimeOffset is write time of message(UTC). If pattern is different previously then roll new file.</param> /// <param name="rollSizeKB">Limit size of single file.</param> public static ILoggingBuilder AddZLoggerRollingFile(this ILoggingBuilder builder, Func <DateTimeOffset, int, string> fileNameSelector, Func <DateTimeOffset, DateTimeOffset> timestampPattern, int rollSizeKB) { builder.AddConfiguration(); builder.Services.Add(ServiceDescriptor.Singleton <ILoggerProvider, ZLoggerRollingFileLoggerProvider>(x => new ZLoggerRollingFileLoggerProvider(fileNameSelector, timestampPattern, rollSizeKB, x.GetService <IOptionsSnapshot <ZLoggerOptions> >()))); LoggerProviderOptions.RegisterProviderOptions <ZLoggerOptions, ZLoggerRollingFileLoggerProvider>(builder.Services); return(builder); }
public static ILoggingBuilder AddZLoggerLogProcessor(this ILoggingBuilder builder, IAsyncLogProcessor logProcessor) { builder.AddConfiguration(); builder.Services.Add(ServiceDescriptor.Singleton <ILoggerProvider, ZLoggerLogProcessorLoggerProvider>(x => new ZLoggerLogProcessorLoggerProvider(logProcessor))); LoggerProviderOptions.RegisterProviderOptions <ZLoggerOptions, ZLoggerLogProcessorLoggerProvider>(builder.Services); return(builder); }
public static ILoggingBuilder AddZLoggerConsole(this ILoggingBuilder builder, bool consoleOutputEncodingToUtf8 = true) { builder.AddConfiguration(); builder.Services.Add(ServiceDescriptor.Singleton <ILoggerProvider, ZLoggerConsoleLoggerProvider>(x => new ZLoggerConsoleLoggerProvider(consoleOutputEncodingToUtf8, null, x.GetService <IOptionsSnapshot <ZLoggerOptions> >()))); LoggerProviderOptions.RegisterProviderOptions <ZLoggerOptions, ZLoggerConsoleLoggerProvider>(builder.Services); return(builder); }
/// <summary> /// Adds a console logger named 'Raven' to the factory. /// </summary> /// <param name="builder">The <see cref="ILoggingBuilder"/> to use.</param> public static ILoggingBuilder AddRaven(this ILoggingBuilder builder) { builder.AddConfiguration(); builder.Services.AddHttpContextAccessor(); builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton <ILoggerProvider, RavenLoggerProvider>()); LoggerProviderOptions.RegisterProviderOptions <RavenLoggerOptions, RavenLoggerProvider>(builder.Services); return(builder); }
public static ILoggingBuilder AddZLoggerFile(this ILoggingBuilder builder, string fileName) { builder.AddConfiguration(); builder.Services.Add(ServiceDescriptor.Singleton <ILoggerProvider, ZLoggerFileLoggerProvider>(x => new ZLoggerFileLoggerProvider(fileName, x.GetService <IOptionsSnapshot <ZLoggerOptions> >()))); LoggerProviderOptions.RegisterProviderOptions <ZLoggerOptions, ZLoggerFileLoggerProvider>(builder.Services); return(builder); }
public static ILoggingBuilder AddSingleLineConsole(this ILoggingBuilder builder) { builder.AddConfiguration(); builder.Services.AddSingleton <ILoggerProvider, SingleLineConsoleLoggerProvider>(); LoggerProviderOptions.RegisterProviderOptions <SingleLineConsoleLoggerOptions, SingleLineConsoleLoggerProvider>(builder.Services); return(builder); }
public static ILoggingBuilder AddZLoggerStream(this ILoggingBuilder builder, Stream stream) { builder.AddConfiguration(); builder.Services.Add(ServiceDescriptor.Singleton <ILoggerProvider, ZLoggerStreamLoggerProvider>(x => new ZLoggerStreamLoggerProvider(stream, x.GetService <IOptionsMonitor <ZLoggerOptions> >()))); LoggerProviderOptions.RegisterProviderOptions <ZLoggerOptions, ZLoggerStreamLoggerProvider>(builder.Services); return(builder); }
/// <summary> /// バックグラウンド ロガーを構成します。 /// </summary> /// <typeparam name="TProvider">構成するロガー プロバイダの型。</typeparam> /// <typeparam name="TOptions">ロガー オプションの型。</typeparam> /// <param name="builder">ログ構成ビルダー。</param> /// <param name="defaultMinLevel">ロガーの既定の最小ログ レベル</param> /// <returns><paramref name="builder"/>。</returns> /// <exception cref="ArgumentNullException"><paramref name="builder"/> is <c>null</c>.</exception> public static ILoggingBuilder AddLogger <TProvider, TOptions>(this ILoggingBuilder builder, LogLevel?defaultMinLevel = null) where TProvider : class, ILoggerProvider where TOptions : class { builder.AddLogger <TProvider>(defaultMinLevel); LoggerProviderOptions.RegisterProviderOptions <TOptions, TProvider>(builder.Services); return(builder); }
private static void AddServices(ILoggingBuilder builder) { builder.AddConfiguration(); builder.Services.TryAddSingleton <DatabaseLoggerCollector>(); builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton <ILoggerProvider, DatabaseLoggerProvider>()); LoggerProviderOptions.RegisterProviderOptions <DatabaseLoggerOptions, DatabaseLoggerProvider>( builder.Services); builder.Services.AddHostedService <DatabaseLoggerService>(); }
public static ILoggingBuilder AddZLoggerUnityDebug(this ILoggingBuilder builder) { builder.AddConfiguration(); builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton <ILoggerProvider, ZLoggerUnityLoggerProvider>(x => new ZLoggerUnityLoggerProvider(x.GetService <IOptions <ZLoggerOptions> >()))); LoggerProviderOptions.RegisterProviderOptions <ZLoggerOptions, ZLoggerUnityLoggerProvider>(builder.Services); return(builder); }
/// <summary> /// Adds a TextBlock logger named 'TextBlock' to the factory. /// </summary> /// <param name="builder">The <see cref="ILoggingBuilder"/> to use.</param> /// <returns>The <see cref="ILoggingBuilder"/> so that additional calls can be chained.</returns> public static ILoggingBuilder AddTextBlock(this ILoggingBuilder builder) { builder.AddConfiguration(); _ = builder.AddTextBlockFormatter <SimpleTextBlockFormatter, SimpleTextBlockFormatterOptions>(); _ = builder.Services.AddSingleton <ITextblockProvider, TextblockProvider>(); builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton <ILoggerProvider, TextBlockLoggerProvider>()); LoggerProviderOptions.RegisterProviderOptions <TextBlockLoggerOptions, TextBlockLoggerProvider>(builder.Services); return(builder); }
public static ILoggingBuilder AddCappedLog(this ILoggingBuilder builder, Action <CappedLogLoggerOptions> configure = null) { builder.AddConfiguration(); builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton <ILoggerProvider, CappedLogProvider>()); LoggerProviderOptions.RegisterProviderOptions <CappedLogLoggerOptions, CappedLogProvider>(builder.Services); builder.Services.Configure <CappedLogLoggerOptions>(opt => ConfigureCappedLog(opt, configure)); return(builder); }
public static ILoggingBuilder AddIotHubLogger(this ILoggingBuilder builder, Action <LoRaLoggerConfiguration> configure) { if (builder is null) { throw new ArgumentNullException(nameof(builder)); } builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton <ILoggerProvider, IotHubLoggerProvider>()); LoggerProviderOptions.RegisterProviderOptions <LoRaLoggerConfiguration, IotHubLoggerProvider>(builder.Services); _ = builder.Services.Configure(configure); return(builder); }
private static void ConfigureServices( HostBuilderContext context, IServiceCollection services) { // Required to convince the EventLogLoggerProvider to honor // configuration for more than just log level. // https://github.com/dotnet/extensions/issues/2519 LoggerProviderOptions.RegisterProviderOptions <EventLogSettings, EventLogLoggerProvider>(services); services.AddRSMassTransit(context.Configuration); }
public static ILoggingBuilder AddSimplestFile(this ILoggingBuilder loggingBuilder, ILogger logger) { logger.LogDebug($@"Adding {nameof(SimplestFileLogger)}..."); loggingBuilder.Services.TryAddEnumerable(ServiceDescriptor.Singleton <ILoggerProvider, SimplestFileLoggerProvider>()); LoggerProviderOptions.RegisterProviderOptions <SimplestFileLoggerOptions, SimplestFileLoggerProvider>(loggingBuilder.Services); logger.LogInformation($@"Added {nameof(SimplestFileLogger)}."); return(loggingBuilder); }
/// <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; }
public static ILoggingBuilder AddZLoggerConsole(this ILoggingBuilder builder, bool consoleOutputEncodingToUtf8 = true, bool configureEnableAnsiEscapeCode = false) { if (configureEnableAnsiEscapeCode) { EnableAnsiEscapeCode(); } builder.AddConfiguration(); builder.Services.Add(ServiceDescriptor.Singleton <ILoggerProvider, ZLoggerConsoleLoggerProvider>(x => new ZLoggerConsoleLoggerProvider(consoleOutputEncodingToUtf8, null, x.GetService <IOptionsMonitor <ZLoggerOptions> >()))); LoggerProviderOptions.RegisterProviderOptions <ZLoggerOptions, ZLoggerConsoleLoggerProvider>(builder.Services); return(builder); }
public static ILoggingBuilder AddNotepad(this ILoggingBuilder builder) { if (builder is null) { throw new ArgumentNullException(nameof(builder)); } builder.AddConfiguration(); builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton <ILoggerProvider, NotepadLoggerProvider>()); LoggerProviderOptions.RegisterProviderOptions <NotepadLoggerOptions, NotepadLoggerProvider>(builder.Services); return(builder); }
public static ILoggingBuilder AddGitFile(this ILoggingBuilder builder, Action <GitFileLoggerOptions> configure = null) { builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton <ILoggerProvider, GitFileLoggerProvider>()); LoggerProviderOptions .RegisterProviderOptions <GitFileLoggerOptions, GitFileLoggerProvider>(builder.Services); if (configure != null) { builder.Services.Configure(configure); } return(builder); }
static public ILoggingBuilder AddChannelLogger( this ILoggingBuilder builder) { builder.AddConfiguration(); builder.Services.TryAddEnumerable( ServiceDescriptor.Singleton <ILoggerProvider, ChannelLoggerProvider>()); LoggerProviderOptions.RegisterProviderOptions <ChannelLoggerConfiguration, ChannelLoggerProvider>(builder.Services); return(builder); }
public static ILoggingBuilder AddHttp(this ILoggingBuilder builder) { builder.Services.TryAddSingleton <HttpLoggerQueue>(); builder.Services.AddHostedService <HttpLoggerProcessor>(); builder.Services.AddSingleton <HttpLoggerService>(); builder.Services.AddHttpClient(nameof(HttpLoggerService)); builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton <ILoggerProvider, HttpLoggerProvider>()); LoggerProviderOptions.RegisterProviderOptions <HttpLoggerOptions, HttpLoggerProvider>(builder.Services); builder.AddFilter <HttpLoggerProvider>($"{typeof(HttpClient).FullName}.{nameof(HttpLoggerService)}", LogLevel.None); return(builder); }
public static ILoggingBuilder AddZLoggerFile(this ILoggingBuilder builder, string fileName, string optionName, Action <ZLoggerOptions> configure) { if (configure == null) { throw new ArgumentNullException(nameof(configure)); } builder.AddConfiguration(); builder.Services.Add(ServiceDescriptor.Singleton <ILoggerProvider, ZLoggerFileLoggerProvider>(x => new ZLoggerFileLoggerProvider(fileName, optionName, x.GetService <IOptionsSnapshot <ZLoggerOptions> >()))); LoggerProviderOptions.RegisterProviderOptions <ZLoggerOptions, ZLoggerFileLoggerProvider>(builder.Services); builder.Services.AddOptions <ZLoggerOptions>(optionName).Configure(configure); return(builder); }
/// <param name="fileNameSelector">DateTimeOffset is date of file open time(UTC), int is number sequence.</param> /// <param name="timestampPattern">DateTimeOffset is write time of message(UTC). If pattern is different previously then roll new file.</param> /// <param name="rollSizeKB">Limit size of single file.</param> public static ILoggingBuilder AddZLoggerRollingFile(this ILoggingBuilder builder, Func <DateTimeOffset, int, string> fileNameSelector, Func <DateTimeOffset, DateTimeOffset> timestampPattern, int rollSizeKB, string optionName, Action <ZLoggerOptions> configure) { if (configure == null) { throw new ArgumentNullException(nameof(configure)); } builder.AddConfiguration(); builder.Services.Add(ServiceDescriptor.Singleton <ILoggerProvider, ZLoggerRollingFileLoggerProvider>(x => new ZLoggerRollingFileLoggerProvider(fileNameSelector, timestampPattern, rollSizeKB, optionName, x.GetService <IOptionsSnapshot <ZLoggerOptions> >()))); LoggerProviderOptions.RegisterProviderOptions <ZLoggerOptions, ZLoggerRollingFileLoggerProvider>(builder.Services); builder.Services.AddOptions <ZLoggerOptions>(optionName).Configure(configure); return(builder); }
public static ILoggingBuilder AddColorConsole(this ILoggingBuilder builder, Action <ColorConsoleLoggerOptions> configure = default) { builder.AddConfiguration(); builder.Services.Configure <ColorConsoleLoggerOptions>(x => { var options = new ColorConsoleLoggerOptions(); configure?.Invoke(options); }); builder.Services.TryAddEnumerable( ServiceDescriptor.Singleton <ILoggerProvider, ColorConsoleLoggerProvider>()); LoggerProviderOptions.RegisterProviderOptions <ColorConsoleLoggerOptions, ColorConsoleLoggerProvider>( builder.Services); return(builder); }
public static ILoggingBuilder AddZLoggerConsole(this ILoggingBuilder builder, string optionName, Action <ZLoggerOptions> configure, bool consoleOutputEncodingToUtf8 = true) { if (configure == null) { throw new ArgumentNullException(nameof(configure)); } builder.AddConfiguration(); builder.Services.Add(ServiceDescriptor.Singleton <ILoggerProvider, ZLoggerConsoleLoggerProvider>(x => new ZLoggerConsoleLoggerProvider(consoleOutputEncodingToUtf8, optionName, x.GetService <IOptionsMonitor <ZLoggerOptions> >()))); LoggerProviderOptions.RegisterProviderOptions <ZLoggerOptions, ZLoggerConsoleLoggerProvider>(builder.Services); builder.Services.AddOptions <ZLoggerOptions>(optionName).Configure(configure); return(builder); }
/// <summary> /// Adds a debug interface to an <see cref="IHostBuilder"/> for displaying log messages as they are written. /// </summary> /// <remarks>Windows platform only.</remarks> /// <param name="hostBuilder">Application <see cref="IHostBuilder"/>.</param> /// <param name="configureOptions">An optional callback for configuring <see cref="DebugWindowLoggerOptions"/> at runtime.</param> /// <param name="configureWindow">An optional delegate for configuring <see cref="DebugWindow"/> instance.</param> /// <param name="configureTab">An optional delegate for configuring <see cref="DebugWindowTabPage"/>s as they are added to the launched <see cref="DebugWindow"/>.</param> /// <returns><see cref="IHostBuilder"/> for chaining.</returns> public static IHostBuilder ConfigureDebugWindow( this IHostBuilder hostBuilder, Action <DebugWindowLoggerOptions>?configureOptions = null, DebugWindowConfigureAction?configureWindow = null, DebugWindowConfigureTabAction?configureTab = null) { if (hostBuilder == null) { throw new ArgumentNullException(nameof(hostBuilder)); } if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { hostBuilder .ConfigureLogging((context, loggingBuilder) => { loggingBuilder.AddConfiguration(); LoggerProviderOptions.RegisterProviderOptions <DebugWindowLoggerOptions, DebugWindowLoggerProvider>(loggingBuilder.Services); }) .ConfigureServices((context, services) => { // Register DebugWindowHostedService first so we can configure DebugWindowLoggerProvider ahead of any other IHostedServices. services.Insert(0, new ServiceDescriptor(typeof(IHostedService), typeof(DebugWindowHostedService), ServiceLifetime.Singleton)); services.AddSingleton <DebugWindowLoggerProvider>(); services.AddSingleton <DebugWindowMessageManager>(); services.AddSingleton <DebugWindowFactory>(); if (configureOptions != null) { services.Configure(configureOptions); } if (configureWindow != null) { services.AddSingleton(configureWindow); } if (configureTab != null) { services.AddSingleton(configureTab); } }); } return(hostBuilder); }
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); }
public void SetupLogger(string logName) { LogManager.LoggerFactory = UnityLoggerFactory.Create(builder => { builder.SetMinimumLevel(LogLevel.Trace); #if !UNITY_SERVER builder.AddConfiguration(); builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton <ILoggerProvider, LogGUIProvider>(x => new LogGUIProvider(this, x.GetService <IOptions <ZLoggerOptions> >()))); LoggerProviderOptions.RegisterProviderOptions <ZLoggerOptions, LogGUIProvider>(builder.Services); #endif builder.AddZLoggerFile($"{logFolder}/{logName}.{logExtension}", options => { options.PrefixFormatter = LogManager.PrefixFormatterConfigure; }); }); loggingEnabled = true; }